验证2个字符串,无论它们的位置如何,都具有相同的字符

时间:2019-05-29 08:05:13

标签: java

我正在尝试比较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 它应该告诉用户,用户映射由原始映射中的字符组成。

1 个答案:

答案 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())而不是代码点肯定会更快,但是代码点允许代理字符对,例如中文。