如何"13,5,8,4,2,1,9"按升序对字符串进行排序1,2,4,5,8,9,13?
Jon*_*eet 27
如果这些步骤中的任何一个导致您遇到困难,请更具体.
Mar*_*tos 14
String.split().Integer.valueOf().StringBuilder.作为一个班轮,使用谷歌收藏(更新凯文的建议)
Joiner.on(",").join(Ordering.natural().onResultOf(new Function<String, Integer>() {
@Override
public Integer apply(String from) {
return Integer.valueOf(from);
}
}).sortedCopy(Arrays.asList("4,2,7,9,1".split(","))));
Run Code Online (Sandbox Code Playgroud)
String.split()Integer使用a Function(任何人都知道某个地方是否存在常量?)TreeSet自然排序进行排序String使用Joiner(旧版)
Joiner.on(',').join(
Sets.newTreeSet(
Iterables.transform(
Arrays.asList("13,5,8,4,2,1,9".split(",")),
new Function<String, Integer>() {
@Override
public Integer apply(String from) {
return Integer.parseInt(from);
}}))));
Run Code Online (Sandbox Code Playgroud)
String s = "13,5,8,4,2,1,9";
String[] arr = s.split(",");
Arrays.sort(arr, new Comparator<String>() {
@Override public int compare(String s1, String s2) {
return Integer.parseInt(s1) - Integer.parseInt(s2);
}
});
s = Arrays.toString(arr).replaceAll("[\\[ \\]]", "");
Run Code Online (Sandbox Code Playgroud)
此解决方案使用:
java.util.Comparatorjava.util.Arrays sort 和 toStringString split 和 replaceAll