H我对java有点新,我想弄清楚如何确定三个字符是否相等。如果他们彼此相等,我想弄清楚他们的相同之处。我该怎么做?我没有任何对此问题有帮助的代码。
答案 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);
}