Java-关于字符串

Java-关于字符串,java,string,Java,String,我正在使用简单的Java进行一些验证,我的编码如下 if (something.equals("ABC")) expectedvalue = "TEST1"; else if(something.equals("DEF")) expectedvalue = "TEST5"; // and so on.... 我这里的问题是,如果something.equals(“ABC”),expectedvalue可以是这两个值中的任意一个->“TEST1”或“TEST2”

我正在使用简单的Java进行一些验证,我的编码如下

if (something.equals("ABC"))

      expectedvalue = "TEST1";

else if(something.equals("DEF"))

      expectedvalue = "TEST5";

// and so on....
我这里的问题是,如果
something.equals(“ABC”)
expectedvalue
可以是这两个值中的任意一个->
“TEST1”
“TEST2”


在验证期间,在输出中,如果我为
expectedvalue
给出
的“TEST1”
,则不会得到错误。即使我给出了
“TEST2”
,它也应该这样做。如何做到这一点?

您必须有一组允许的值

Set<String> allowed = new HashSet<String>();
allowed.put("TEST1");
allowed.put("TEST2");

//and then you can use this set
if (allowed.contains(yourValueToCheck)) {
    // do what you need

也许你可以把你的测试改成一个或多个测试

if(expectedvalue.equals("TEST1") || expectedvalue.equals("TEST2"))
     .....

你能详细解释一下你的意思吗?您应该返回一个介于1和2之间的随机期望值?大约90%的编程可能会重复,这是因为您知道如何识别问题并清楚地描述它。现在,您的代码会说,如果“某物”是“ABC”,则将“期望值”设置为“TEST1”…您所问的与您的代码不匹配您是对的,现在它会这样说,但是我想编写这样的代码->如果'something'是'ABC',那么将'expectedValue'设置为'TEST1'或'TEST2',如果expectedValue是TEST1或TEST2中的任何一个,那么不应该出错,而不是进行比较,这就是它所做的-在英语中,它说“如果expectedValue是TEST1,或者expectedValue是TEST2,那么就这样做”但是我想编码,这样->如果'something'是'ABC',那么将'expectedValue'设置为'TEST1'或'TEST2',我倾向于避开带有字符串的yoda条件。如果我的字符串为空,我想知道它!当你的应用程序崩溃时,你就会知道这一点。了解它的另一种方法是检查它是否为null,并在不破坏appA NullPointerException的情况下自己处理错误情况。异常几乎总是程序早期出现错误的标志,并且我们不再处于可靠状态。允许抛出异常并更早地使应用程序崩溃,让我们有机会修复真正的bug。尝试在应用程序已经失败的情况下蹒跚前行只会给我们造成更大的损害。在许多情况下,我使用NULL是一个合法的值(意味着没有设置属性或某些标志)
if(expectedvalue.equals("TEST1") || expectedvalue.equals("TEST2"))
     .....