π Comparator< T > μ λ ¬
β μ½λ
Arrays.sort(files, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int result = o1.compareTo(o2);
if(result == 0) {
}
return result;
}
});
+ λλ€μ μ½λ
Arrays.sort(files, (o1, o2) -> {
int result = o1.compareTo(o2);
if(result == 0) {
}
return result;
});
β λ¬Έμ μμ© μμ (νλ‘κ·Έλλ¨Έμ€: νμΌλͺ
μ λ ¬)
import java.util.*;
class Solution {
public String[] solution(String[] files) {
Arrays.sort(files, (f1, f2) -> {
String h1 = f1.split("[0-9]")[0];
String h2 = f2.split("[0-9]")[0];
int result = h1.toLowerCase().compareTo(h2.toLowerCase());
if(result == 0)
result = getNum(f1, h1) - getNum(f2, h2);
return result;
});
return files;
}
static int getNum(String file, String head) {
file = file.replace(head, "");
String result = "";
for(char c : file.toCharArray()) {
if(!Character.isDigit(c)
|| result.length() > 5) break;
result += c;
}
return Integer.parseInt(result);
}
}
λ¬Έμμ΄ λ°°μ΄.toCharArray()
: ν λ¬Έμμ© λλμ΄ λ°°μ΄ μμ±
Character.isDigit(c)
: ν΄λΉ λ¬Έμκ° μ«μμΈμ§ νλ³