嗨,我对 java 有点陌生,我想弄清楚如何确定三个字符是否相等。如果它们确实彼此相等,我想弄清楚它们相等。我该怎么做?我没有任何有助于解决此问题的代码。
user1299463
问问题
37651 次
3 回答
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");
}
输出:
a 等于 c
c 等于 a
动态方式:
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
a 不等于 b
于 2013-04-13T01:00:51.447 回答
2
您使用测试字符的相等性==
char c1 = ...
char c2 = ...
if (c1 == c2) {
System.out.println("they are equal");
}
&&
您可以使用and||
运算符(“and”和“or”)将其扩展到多个测试
if (c1 == c2 && c2 == c3) {
System.out.println("they are all equal");
}
至于“弄清楚它们等于[to]”......最明显的解释是你想打印出字符的值
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 - 实际上,代码点不是正确的术语。Achar
通常表示一个 Unicode 代码点,但在某些情况下,一个代码点需要两个char
值……一个代理对。有一个更准确的术语来说明 achar
是什么,但目前我没有想到它。
于 2013-04-13T01:01:17.663 回答
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);
}
于 2013-04-13T00:59:07.520 回答