你好我想找到一个解决方案,找出我的char变量是否是字母表的前六个字母之一。如果不是那么真实。
't'是我的char变量,它包含某个未知值。
我有什么:
(t < 'a' || t > 'f' && t < 'A' || t > 'F')
答案 0 :(得分:3)
"ABCDEFabcdef".indexOf(t) != -1
答案 1 :(得分:3)
正如您在此处所见http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html &&
运算符的优先级高于||
所以您的条件
(t < 'a' || t > 'f' && t < 'A' || t > 'F')
与
相同(t < 'a' || (t > 'f' && t < 'A') || t > 'F')
^^^^^^^^^^^^^^^^^^^^
你可能想要分成这些部分
((t < 'a' || t > 'f') && (t < 'A' || t > 'F'))
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
您还可以使用char tLower = Character.toLowerCase(t)
将字符设为小写,然后检查是否tLower < 'a' || tLower > 'f'
。
答案 2 :(得分:1)
你的情况有点不对,你的意思是
((t >= 'g' && t <= 'z') || (t >= 'G' && t <= 'Z'))
这种情况说:
t大于或等于'g'且小于或等于'z'或
t大于或等于'g'且小于或等于'Z'
你的病情说
小于'a'或
大于'f',t小于'A'或
大于'F'
所以每个角色,包括数字字符和符号都可以通过条件
另外,在if
和&&
使用||
语句时,请使用“(”和“)”并说明哪些部分是分开的
答案 3 :(得分:0)
int array[] = {'a','b','c','d','e','f'};
string toCheck = 'b';
for(int i=0; i<array.length; i++) {
if(toCheck.equal(array[i]) {
//oh crap
}
else //we are in home
}
答案 4 :(得分:0)
表达式
((t >= 'a' && t <= 'f') || (t >= 'A' && t <= 'F'))
如果字母在A和F之间(大写或小写),则评估为true
。
如果此不,您希望它评估为true
,所以
!((t >= 'a' && t <= 'f') || (t >= 'A' && t <= 'F'))
会奏效。
答案 5 :(得分:0)
如果您需要一些冗长的实现,出于理解目的,您可以尝试使用JDK 1.7。
char t='t';
boolean status=true;
switch (String.valueOf(t).toLowerCase())
{
case "a": status=false;
break;
case "b": status=false;
break;
case "c": status=false;
break;
case "d": status=false;
break;
case "e": status=false;
break;
case "f": status=false;
break;
}
if(status){
System.out.println("condition satisfied");
}else{
System.out.println("letter is "+String.valueOf(t)+" and it is between a and f");
}