62,616
社区成员
发帖
与我相关
我的任务
分享
package com;
import java.util.ArrayList;
import java.util.List;
public class SerialNumber {
/**
* pai xu
* @param str
* @return
*/
public List<Integer> paiXu(String str) {
List<Integer> listInt = new ArrayList<Integer>();
String[] strArray = str.split(",");
try{
for(String s : strArray) {
listInt.add(Integer.parseInt(s));
}
} catch (Exception e) {
e.printStackTrace();
}
for(int i = 0; i < listInt.size() - 1; i++) {
for(int j = i + 1; j < listInt.size(); j++) {
int temp;
if (listInt.get(i) > listInt.get(j)) {
temp = listInt.get(i);
listInt.set(i, listInt.get(j));
listInt.set(j, temp);
}
}
}
return listInt;
}
/**
* Output string
* @param listInt
* @return
*/
public String outString(List<Integer> listInt) {
StringBuilder desStr = new StringBuilder();
boolean bLianxu = false;
if (listInt.size() > 0) {
desStr.append(listInt.get(0));
for(int i = 1; i < listInt.size(); i++) {
if ( (listInt.get(i - 1) + 1 == listInt.get(i)) && !bLianxu) {
desStr.append("-");
bLianxu = true;
}
if (i < listInt.size() - 1) {
if ( (listInt.get(i - 1) + 1 == listInt.get(i))
&& (listInt.get(i) + 1 == listInt.get(i + 1)) ) {
continue;
}
if ( (listInt.get(i - 1) + 1 == listInt.get(i))
&& (listInt.get(i) + 1 != listInt.get(i + 1)) ) {
desStr.append(listInt.get(i));
bLianxu = false;
} else {
desStr.append("," + listInt.get(i));
bLianxu = false;
}
} else {
if (listInt.get(i - 1) + 1 == listInt.get(i)) {
desStr.append(listInt.get(i));
} else {
desStr.append("," + listInt.get(i));
}
}
}
}
return String.valueOf(desStr);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SerialNumber sn = new SerialNumber();
String str = "14,2,13,4,5,6,7,8,9,11,3";
List<Integer> listInt = new ArrayList<Integer>();
listInt = sn.paiXu(str);
System.out.println(listInt);
System.out.println(sn.outString(listInt));
}
}
import java.util.*;
public class ddd {
private int[] nums = {14,2,13,4,5,6,7,8,9,11,3};
private List<Integer> list;
public ddd(){
list = new ArrayList<Integer>();
for(int i=0;i<nums.length;i++){
list.add(nums[i]);
}
}
private void execute(){
Collections.sort(list,new num_comparator());
int temp = list.get(0);
StringBuffer sb = new StringBuffer(temp+"");
for(int i=1;i<list.size();i++){
if(list.get(i)-temp==1){
sb.append("-");
}else{
sb.append(temp+","+list.get(i));
}
temp = list.get(i);
System.out.println(i+":"+sb.toString());
}
sb.append(list.get(list.size()-1));
System.out.println(sb.toString());
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new ddd().execute();
}
private class num_comparator implements Comparator<Integer>{
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
if(o1.intValue()>o2.intValue()){
return 1;
}else if(o1.intValue()<o2.intValue()){
return -1;
}
return 0;
}
}
}