Java 两个字符串之间的比较

Java 两个字符串之间的比较,java,Java,我想比较两个字符串,例如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(

我想比较两个字符串,例如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中添加另一个代码,如果这两个字符串是双胞胎或不是双胞胎,我会影响这一点 请帮助我,我的朋友:

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));
    }

问题不是关于相等的字符串,而是关于包含相同字符的字符串。在投票否决或写错误评论之前,请正确阅读。你尝试过什么?你至少想过一个策略吗?你会怎么用手做?如果你有一个策略,它是什么?你试过实现它吗?我们不会做你的家庭作业。我投票结束这个问题,因为:。您问题的当前状态不符合这些要求。使用选项来改进它。也请阅读本文,这是否也适用于多字节Unicode代码点?我不确定,但是一个字节一个字节比较两个字节[]可能更安全。我认为,即使多字节字符的多个字节在排序时会被分开,也应该这样做。因此,结果排序字符串将不正确,但最终结果布尔值应该是好的。