您好,我正在尝试提出一个解决方案,以查找我的 char 变量是否是字母表的前六个字母之一。如果不是,那么它是真的。
't' 是我的 char 变量,其中包含某个未知值。
是)我有的:
(t < 'a' || t > 'f' && t < 'A' || t > 'F')
您好,我正在尝试提出一个解决方案,以查找我的 char 变量是否是字母表的前六个字母之一。如果不是,那么它是真的。
't' 是我的 char 变量,其中包含某个未知值。
是)我有的:
(t < 'a' || t > 'f' && t < 'A' || t > 'F')
"ABCDEFabcdef".indexOf(t) != -1
正如您在此处看到的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)
然后检查 if tLower < 'a' || tLower > 'f'
。
你的情况有点不对,你是说
((t >= 'g' && t <= 'z') || (t >= 'G' && t <= 'Z'))
这种情况说:
t 大于或等于“g”且小于或等于“z”或
t 大于或等于“g”且小于或等于“Z”
你的情况说
t 小于 'a'或
大于 'f' 并且 t 小于 'A'或
大于“F”
所以每个字符,包括数字字符和符号都可以通过条件
此外,当使用带有“(”和“)”的if
语句时,&&
并||
解释哪些部分是分开的
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
}
表达方式
((t >= 'a' && t <= 'f') || (t >= 'A' && t <= 'F'))
计算true
字母是否介于 A 和 F(大写或小写)之间。
true
如果不是这种情况,您希望它评估,所以
!((t >= 'a' && t <= 'f') || (t >= 'A' && t <= 'F'))
将工作。
如果您想要一些冗长的实现,为了便于理解,您可以使用 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");
}