如何检查三个字符是否相等以及它们是否相同?

时间:2013-04-13 00:55:12

标签: java

H我对java有点新,我想弄清楚如何确定三个字符是否相等。如果他们彼此相等,我想弄清楚他们的相同之处。我该怎么做?我没有任何对此问题有帮助的代码。

3 个答案:

答案 0 :(得分:5)

这不是智能/动态解决方案,但有效:

char a = 'a';
char b = 'b';
char c = 'a'; 

if(a == c && b == c) {
    System.out.println("All chars are same");
} else {
    if(a == b) System.out.println("a equals b");
    if(a == c) System.out.println("a equals c");
    if(b == a) System.out.println("b equals a");
    if(b == c) System.out.println("b equals c");
    if(c == a) System.out.println("c equals a");
    if(c == b) System.out.println("c equals b");
}
  

输出:

     

等于c
  c等于

动态方式:

char[] chars = {'a', 'b', 'a'};

for (int i = 0; i < chars.length; i++) {
    char char1 = chars[i];

    for (int i2 = 0; i2 < chars.length; i2++) {
        char char2 = chars[i2];

        if (i != i2) {
            if (char1 == char2) {
                System.out.println(char1 + " equals " + char2);
            } else {
                System.out.println(char1 + " not equals " + char2);
            }
        }
    }
}
  

输出:

     

a不等于b
  a等于a   b不等于a   b不等于a   a等于a   a不等于b

答案 1 :(得分:2)

使用==

测试字符的相等性
  char c1 = ...
  char c2 = ...
  if (c1 == c2) {
      System.out.println("they are equal");
  }

您可以使用&&||运算符(“和”和“或”)将其扩展到多个测试

  if (c1 == c2 && c2 == c3) {
      System.out.println("they are all equal");
  }

至于“搞清楚它们与...相等”......最明显的解释是你要打印出角色的价值

  if (c1 == c2 && c2 == c3) {
      System.out.println("All three characters are '" + c1 + "'");
      System.out.println("The Unicode codepoint is " + ((int) c1));
  }

最后一行将字符转换为整数并将其打印出来(以十进制表示)。如果您要检查的字符不可打印,则可以执行此操作。此外,在某些情况下,两个或多个不同的Unicode代码点 1 在显示时无法区分。

(现在如果你问的是1个字符串......答案会有很大不同。你不应该使用==来比较任何类型的字符串。你应该使用String.equals ...)


1 - 实际上, codepoint 不是正确的术语。 char通常表示Unicode代码点,但在某些情况下,代码点需要两个char值...一个代理项对。对于char来说,有一个更准确的术语,但目前它逃脱了我。

答案 2 :(得分:1)

char c1 = 'a';
char c2 = 'b';
char c3 = 'c';

// are all 3 equal?
if(c1 == c2 && c2 == c3) {
    // print out what the char is
    System.out.println("The characters all equal and is " + c1);
}