传的值是以英文逗号分开的数字字符串,返回值是转化好的
public String stringFormat(String s) {
String hoursStrs = "";if (StringUtils.isNotEmpty(s)) {
String[] hours = s.split(",");
int[] h = new int[hours.length];
for (int i = 0; i < hours.length; i++) {
h[i] = Integer.parseInt(hours[i]);
}
if (h.length > 0) {
List<String> list = new ArrayList<String>();
String hoursStr = ""+h[0];
int temp = h[0];
for (int i = 1; i < h.length; i++) {
if (h[i] - 1 == temp) {
temp = h[i];
if(i==h.length-1){//最后一个数和前边连续
hoursStr += "~" + h[i] + "点";
list.add(hoursStr);
}
continue;
} else {
if (StringUtils.isEmpty(hoursStr)||hoursStr.equals(""+temp)) {
hoursStr = temp + "点";
} else {
hoursStr += "~" + temp + "点";
}
list.add(hoursStr);
temp = h[i];
hoursStr=""+h[i];
if(i==h.length-1){//最后一个数和前边不连续
list.add(hoursStr+"点");
}
}
}
for (String string : list) {
if (StringUtils.isEmpty(hoursStrs)) {
hoursStrs += string;
} else {
hoursStrs += "、" + string;
}
}
}
}
if(StringUtils.isEmpty(hoursStrs)){
hoursStrs = s+"点";
}
return hoursStrs;
}