51,397
社区成员




import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "zzzzz9999999999999999999999bbb0000000011ccc899989898989dd220bbbbbbbb";
System.out.println(str);
String pattern = "\\D+|\\d+";
Pattern r = Pattern.compile(pattern);
Matcher matcher = r.matcher(str);
List<String> l1 = new ArrayList<String>();
List<String> l2 = new ArrayList<String>();
while(matcher.find()){
String temp = matcher.group();
if(l1.size() == l2.size())
l1.add(temp);
else
l2.add(temp);
}
Comparator<String> comparator = (x, y) -> new BigDecimal(x).compareTo(new BigDecimal(y));
if(Character.isDigit(l1.get(0).charAt(0)))
l1.sort(comparator);
else
l2.sort(comparator);
String res = "";
for(int i = 0; i < l1.size(); i++){
res += l1.get(i) + (i < l2.size() ? l2.get(i) : "");
}
System.out.println(res);
}
}