我正在尝试比较2个字符串,看看其中一个字符串是否包含原始字符串中找到的字符。
我添加了一个for循环,以便程序可以遍历原始字符串中的每个字符。
String originalMapping = "ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678910 !.";
String userMapping = "VWXYZ12345678910 !.,ABCDEFGHIJKLMNOPQRSTU";
if(userMapping.length()==originalMapping.length())
{
for(int i=0;i<originalMapping.length();i++)
{
if(userMapping.equals(i))
{
System.out.println("Contain");
}
else
System.out.println("Dont contain");
}
}
如果原始映射为:ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678910!。, 并且用户映射为:VWXYZ12345678910!。,ABCDEFGHIJKLMNOPQRSTU 它应该告诉用户,用户映射由原始映射中的字符组成。
答案 0 :(得分:0)
使用Set或对字符进行排序。
boolean flippedEquals(String s, String t) {
int[] sa = s.codePoints().toArray();
Arrays.sort(sa);
int[] ta = t.codePoints().toArray();
Arrays.sort(ta);
return Arrays.equals(sq, ta);
}
一个Set会更好,但是上述设置可能会更快。使用chars(s.toCharArray()
)而不是代码点肯定会更快,但是代码点允许代理字符对,例如中文。