如何比较两个字符串的VALUE?

时间:2013-09-22 15:33:44

标签: java string

我正在教自己如何用java编码,我使用在互联网上找到的练习练习我学到的东西。

我现在处于一个问题的中间,要求我比较两个字符串(来自用户的输入)并检查两个字符串是否包含相同的字母。

示例:

areAnagrams("asd","dsa") -> true
areAnagrams("Debit Card","Bad Credit")=> true

得到了主意?

我知道==只检查它们是否都引用同一个对象。 我以为

public int compareTo(String otherString)

应该完成这项工作。 但它不起作用= \

我到现在所做的是:

public static boolean areAnagrams(String a, String b)
{
int x=0;
    a.trim();
    b.trim();

    x=a.compareTo(b);
    System.out.println(x);
    return x==0 ? true:false;

}
    public static void main(String[] args)
    {
Scanner temp= new Scanner(System.in);
Scanner temp2= new Scanner(System.in);
String a= temp.next();
String b= temp2.next();
System.out.println(areAnagrams(a,b));

    }

}

但它不起作用。我认为有一个命令应该比较价值,但我无法在网上找到它。

将帮助您提供帮助

谢谢!

3 个答案:

答案 0 :(得分:3)

如何尝试Arrays这样: -

 char[] w1= firstWord.trim().toUpperCase().replaceAll("[\\s]", "").toCharArray();
 char[] w2= secondWord.trim().toUpperCase().replaceAll("[\\s]", "").toCharArray();
 Arrays.sort(w1);
 Arrays.sort(w2);
 return Arrays.equals(w1, w2);

答案 1 :(得分:2)

compareTo方法检查字符串是否在词典上相等,请参阅: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#compareTo(java.lang.String)

您想要比较输入字符串中的所有字符。

答案 2 :(得分:1)

Anagram algorithm in java

在该链接中,请参阅:

public static boolean isAnagram(String s1, String s2){

    // Early termination check, if strings are of unequal lengths,
    // then they cannot be anagrams
    if ( s1.length() != s2.length() ) {
        return false;
    }

    char[] c1 = s1.toCharArray();
    char[] c2 = s2.toCharArray();
    Arrays.sort(c1);
    Arrays.sort(c2);
    String sc1 = new String(c1);
    String sc2 = new String(c2);
    return sc1.equals(sc2);

}`