检查char是否不等于字母表的前6个字母

时间:2013-08-28 12:00:35

标签: java if-statement char

你好我想找到一个解决方案,找出我的char变量是否是字母表的前六个字母之一。如果不是那么真实。

't'是我的char变量,它包含某个未知值。

我有什么:

(t < 'a' || t > 'f' && t < 'A' || t > 'F')

6 个答案:

答案 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");
    }