Reorder Data in Log Files
给一个log文件, 里面有两种log, 一个是全是字符, 一个是全是数字. 要求排序, 全是字符的按照字符的字典序排序, 全是数字的维持不变.
public class Solution {
public static String[] reorderLogFiles(String[] logs) {
Comparator<String> comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String[] s1 = o1.split(" ", 2);
String[] s2 = o2.split(" ", 2);
boolean isDigit1 = Character.isDigit(s1[1].charAt(0));
boolean isDigit2 = Character.isDigit(s2[1].charAt(0));
if (!isDigit1 && !isDigit2) { // if both string are not number
if (s1[1].compareTo(s2[1]) != 0) { // if content is diff
return s1[1].compareTo(s2[1]);
}
else { // compare the id
return s1[0].compareTo(s2[0]);
}
}
else {
if (isDigit1 && isDigit2) {
return 0;
}
else if (isDigit1){
return 1;
}
else{
return -1;
}
}
}
};
Arrays.sort(logs, comparator);
return logs;
}
}