我想比较两个String for exemple str =" abc"和str2 =" bca"或str3 =" bac"都是双胞胎(包含相同的字符) 我有这个代码
package com.hr.access.chaine;
public class ChaineCaractere {
public static void main(String[] args) {
System.out.println(Solution.isTwin("hello", "world"));// false
System.out.println(Solution.isTwin("abc", "cab"));// true
System.out.println(Solution.isTwin("Lookout", "outlook"));// true
} }
和Solution.isTwins的另一个类是
package com.hr.access.chaine;
public class Solution {
public static boolean isTwin(String a, String b) {
int longA = a.length();
int longB = b.length();
boolean retourneValeur;
if (longA != longB) {
System.out.println("Le deux chaine ne sont pas jumeau");
retourneValeur = false;
} else {
// I want to add the code in this place to compare into two string
retourneValeur = true;
}
return retourneValeur;
}}
我想在else的bloc中添加另一个代码,如果两个字符串是双胞胎或者没有,我会影响这个 请帮助我,我的朋友:)
答案 0 :(得分:3)
import java.util.Arrays;
public class TwinString {
public static void main(String[] args) {
System.out.println(isTwin("史密斯是王明的朋友", "朋友史密斯是王明的"));
System.out.println(isTwin("acab", "abac"));
System.out.println(isTwin("acab", "abacd"));
System.out.println(isTwin("hello", "world"));// false
System.out.println(isTwin("abc", "cab"));// true
System.out.println(isTwin("Lookout", "outlook"));// true
}
public static boolean isTwin(String a, String b) {
byte[] ab = a.toLowerCase().getBytes();
byte[] bb = b.toLowerCase().getBytes();
Arrays.sort(ab);
Arrays.sort(bb);
return new String(ab).equals(new String(bb));
}
}
更新:上面会破坏多字节字符集 - 但应该仍然有效。如果您担心多字节字符集,可以使用以下
public static boolean isTwinChars (String a, String b) {
char[] aca = a.toLowerCase().toCharArray();
char[] bca = b.toLowerCase().toCharArray();
Arrays.sort(aca);
Arrays.sort(bca);
System.out.println(new String(aca));
System.out.println(new String(bca));
return new String(aca).equals(new String(bca));
}