我有一个String变量,str可能的值val1,val2和val3.
我想str使用if语句比较(相同的情况)所有这些值,例如:
if("val1".equalsIgnoreCase(str)||"val2".equalsIgnoreCase(str)||"val3.equalsIgnoreCase(str))
{
//remaining code
}
Run Code Online (Sandbox Code Playgroud)
有没有办法避免使用多个OR(||)运算符并比较一个表达式中的值?例如,像这样:
if(("val1" OR "val2" OR "val3").equalsIgnoreCase(str) //this is only an idea.
Run Code Online (Sandbox Code Playgroud) 我在eclipse上开发一个Android应用程序,当我尝试一些类似的代码
switch(String){
......
}
Run Code Online (Sandbox Code Playgroud)
它给我以下错误
Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted
Run Code Online (Sandbox Code Playgroud)
所以我将编译器更改为1.7,然后它给了我另一个错误
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
Run Code Online (Sandbox Code Playgroud)
那么,有没有让switch(String)在Android应用程序中工作?或者我别无选择只能使用
if(){}
else if(){}
else if(){}
........
Run Code Online (Sandbox Code Playgroud) 在这个梦想中,我可以取代以下构造:
if(aLongVariableName.equals(classInstance.aPropertyOfThatInstance) ||
aLongVariableName.equals(classInstance.aDifferentProperty)){
...
}
Run Code Online (Sandbox Code Playgroud)
同
if(aLongVariableName.equals(classInstance.aDifferentProperty || aPropertyOfThatInstance)){
...
}
Run Code Online (Sandbox Code Playgroud)
我认为后者更简洁,更容易阅读.我确信应该可以实现某些方法,因为可以用这种签名来声明方法,这种签名public void readUnlimitedVariables(Variable ... vars)采用逗号分隔的变量(而不是||甚至是&&).
这可以打开任何返回布尔值的东西,例如:
if(myLovelyInstance instanceof AwesomeClass && EpicClass){
...
}
Run Code Online (Sandbox Code Playgroud)
其中myLovelyInstance器具AwesomeClass && EpicClass
这在Java中可行吗?到目前为止,我还没有通过谷歌搜索或SO搜索到任何内容.如果它不是在Java中,那么是否有任何第三方软件包如Lombok或lambdaJ可以允许这样做?如果不是这样,如果这是任何语言的功能?这对我来说似乎很直观,但我没有在任何地方看到它.
我想知道如何在一行中比较多个字符串.我尝试使用|| 但它不适用于布尔值或字符串.这就是我的代码:
}else if(question != "a" || "b") {
System.out.println("Sorry that isn't an A or a B");
Run Code Online (Sandbox Code Playgroud)
对于那些标记为重复的人,我在这里检查了200多个关于堆栈溢出的问题,但没有一个工作.@Chrylis发布的那个实际上并没有帮助.他们只是在询问==和.equals()的区别
我有一个约会,我必须检查是星期六还是星期天.我正在进行吗?
Calendar gcal = new GregorianCalendar();
DateFormat dateFormat = new SimpleDateFormat("EEEE");
Date currentDate = gcal.getTime();
String strDate = dateFormat.format(currentDate);
if (!"Saturday".equals(strDate)) {
}
Run Code Online (Sandbox Code Playgroud)
它的工作正常.但我不能比较两个字符串,
if (!"Saturday" || "Sunday".equals(strDate)) {}
Run Code Online (Sandbox Code Playgroud)
如果约会是星期六或星期日,我必须跳过循环....提前感谢...