检查int是否为(1,3,8,7)
int a= 1;
if (a==1 || a==3 || a==8 ....) {
doAdd();
}
可以缩短" if-statement"类似于:
if (a==1 || 3 || 8 ...)
不使用数组,只想用更少的代码编写它。
第一版(仅供参考):
//计算元音(a,o,e,u,i)
[...]
String a= 'o';
if (a=='a' || a=='o' || a=='e' ....) {
doAdd();
}
[...]
可以缩短" if-statement"类似于:
if (a=='a' || 'o' || 'e' ...)
我知道这不是有效的java,但我想知道是否有另一种方法可以做到这一点(没有循环通过"元音阵列")。
答案 0 :(得分:1)
您可能希望查看具有一些非常简洁功能的Guava Chars。特别是看看
static boolean contains(char [] array,char target) 如果target作为数组中任何位置的元素存在,则返回true。
答案 1 :(得分:1)
您可以使用String.contains()尝试此操作:
String str = "A";
if("aeiou".contains(str.toLowerCase())) {
//is vowel
}
OR
您可以使用String.matches()尝试此操作:
String str = "A";
if(str.matches("(?i:a|e|i|o|u)"))) {
//is vowel
}
修改强>
Integer n = 3;
if("1387".contains(n.toString())) {
//is in list
}
OR
Integer n = 3;
if(n.toString().matches("1|3|8|7"))) {
//is in list
}
答案 2 :(得分:1)
在您提出几项更改后,简单的答案是:否。
在将数组排除为可能的解决方案之前,我的答案是:
您可以将字符添加到数组中并使用Arrays.binarySearch()
来确定字符是否在数组中:
char[] vowels = {'a', 'e', 'i', 'o', 'u'}
...
if (Arrays.binarySearch(vowels, a) >= 0) {
...
}
请注意,必须对数组进行排序才能使用此方法。
请注意,此方法不仅限于使用字符,还适用于其他类型。
答案 3 :(得分:0)
String arr[] = {"a", "o", "e"};
String a = "a";
if (Arrays.asList(arr).contains(a)) {
System.out.println("true");
}
它也可以用于其他数据类型,而不仅仅是String