java - 在 Java 中检查三个或更多字符串的相等性

标签 java string if-statement compare

<分区>

我知道这是一个非常基本的问题,但我一直在努力寻找使我的代码尽可能简洁明了的方法。有没有办法在单个 if() 语句中比较三个或更多字符串的相等性?我目前正在使用 && 运算符来逐步比较每个字符串。然而,正如您所想象的,在长变量名和被调用的方法之间,这些 if() 语句很快就会变得非常困惑。此外,我计划拥有未知数量的这些字符串,并希望避免复杂的 for 循环,其中嵌套了困惑的 if()。这是我的代码目前的样子:

String a = new String("a");
String b = new String("b");
String c = new String("c");
if(a.equals(b) && b.equals(c)) {
    doSomething();
}

有没有一种方法或某种集合可以让我更像这样比较这些值:

if(a.equals(b).equals(c)) {
    doSomething();
}

最佳答案

没有像这样链接equals() 命令的简单方法。为了能够以这种方式链接它们,equals() 必须返回对 String 本身的引用。然而,它不能再返回表示比较结果的 boolean 值。

此外,我认为像您的第一个示例那样分别比较三个字符串不是特别有问题。确保您的代码格式正确,这样即使对于较长的变量名,代码也易于理解:

if(myValueAWithALongName.equals(myValueBWithALongName) &&
   myValueBWithALongName.equals(myValueCWithALongName) &&
   myValueCWithALongName.equals(myValueDWithALongName) &&
   ... ) {

或者,您可以使用此线程中提出的其他解决方案之一,将您的值包装到一个集合中并编写一个辅助方法。但是请注意,这可能会对内存使用、性能和可读性产生负面影响。


附带说明一下,您永远不应该使用构造函数 new String() 创建字符串。只需将字符串文字直接分配给您的变量:

String a = "a";

关于java - 在 Java 中检查三个或更多字符串的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30560338/

相关文章:

c - 使用转义字符的 Flex/Lex 编码字符串

Java 字符串构造函数优化

string - 如何在 Swift 中连接字符串?

ios - 尝试将字符串数组传递给目标 View Controller

c# - ASP.NET MVC - 简单的 If Else

python将项目添加到列表并在获得空值时停止

javascript - JS 将文本添加到输入中(如果尚未输入)

java - 在 Galaxy Note2 上使用 SurfaceView 和媒体记录器进行 Android 视频录制问题

java - 在 Tomcat 上部署 .war 时图像路径不正确

java - 创建对象数组时的构造函数