Fro*_*oxx 3 java string compare
这个话题很好地解释了我的愿望.所以我想达到的是:
madeOutOfSameLetters("aaasdf", "xyz") // false
madeOutOfSameLetters("aaasdf", "asdf") // false
madeOutOfSameLetters("aaasdf", "aaasdd") // false
madeOutOfSameLetters("aaasdf", "fdsaaa") // true
Run Code Online (Sandbox Code Playgroud)
是否有我可以使用的(组合)方法,或者我需要自己做吗?
在第二种情况下,我会计算两个字符串的每个字母,将其写入数组并将它们相互比较.但这似乎比我必须要复杂得多.更简单的想法?
Ell*_*sch 12
你可以使用String.toCharArray()和Arrays.sort(char[])和Arrays.equals(char[], char[]).就是这样的,
public static boolean madeOutOfSameLetters(String a, String b) {
if (a == null) {
return b == null;
} else if (b == null) {
return false;
}
char[] left = a.toCharArray();
char[] right = b.toCharArray();
Arrays.sort(left);
Arrays.sort(right);
return Arrays.equals(left, right);
}
public static void main(String[] args) throws Exception {
System.out.println(madeOutOfSameLetters("aaasdf", "xyz")); // false
System.out.println(madeOutOfSameLetters("aaasdf", "asdf")); // false
System.out.println(madeOutOfSameLetters("aaasdf", "aaasdd")); // false
System.out.println(madeOutOfSameLetters("aaasdf", "fdsaaa"));// true
}
Run Code Online (Sandbox Code Playgroud)
输出是请求的
false
false
false
true
Run Code Online (Sandbox Code Playgroud)