【问题标题】:Checking if a char isn't equal to the first 6 letters of the alphabet检查 char 是否不等于字母表的前 6 个字母
【发布时间】:2013-08-31 11:46:22
【问题描述】:

您好,我正在尝试提出一个解决方案,以查找我的 char 变量是否是字母表的前六个字母之一。如果不是,那就是真的。

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

我有什么:

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

【问题讨论】:

  • 那你现在想要什么?
  • 注意操作顺序。 && 比 || 绑定得更紧密。

标签: java if-statement char


【解决方案1】:

如果您想要一些冗长的实现,为了便于理解,您可以使用 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");
    }

【讨论】:

    【解决方案2】:

    正如你在这里看到的http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html &amp;&amp; 运算符的优先级高于|| 所以你的条件

    (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 &lt; 'a' || tLower &gt; 'f'

    【讨论】:

      【解决方案3】:

      表达式

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

      如果字母介于 A 和 F(大写或小写)之间,则计算为 true

      如果情况不是,您希望它评估为true,所以

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

      会起作用的。

      【讨论】:

        【解决方案4】:
          "ABCDEFabcdef".indexOf(t) != -1
        

        【讨论】:

          【解决方案5】:

          你的情况有点不对,你是说

          ((t >= 'g' && t <= 'z') || (t >= 'G' && t <= 'Z'))
          

          这个条件说:

          t 大于或等于 'g' 且小于或等于 'z'

          t 大于等于 'g' 小于等于 'Z'

          你的情况说

          t 小于 'a'

          比'f'大,t比'A'小

          大于'F'

          所以每个字符,包括数字字符和符号都可以通过条件

          另外,当使用带有&amp;&amp;||if 语句时,使用“(”和“)”并说明哪些部分是分开的

          【讨论】:

          • 对不起,如果我不清楚。我不应该是字母表的前六个字母之一
          • @DaViDa 哈哈,让我编辑一下。等等,还需要一封信吗?
          • 给定一个已经被赋值的 char 变量 t,写一个表达式,其值为真当且仅当 t 不是字母表中的前六个字母之一。 (我需要使用 a 和 f)
          • @DaViDa 不清楚,但相信他们在谈论字母字符
          • @DaViDa 然后接受他的回答 :) 无论如何他的回答也让登录,所以请确保像“@”这样的标志是可以接受的
          【解决方案6】:
          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
          }
          

          【讨论】:

          • 哈哈我喜欢“哦,废话”部分,但不幸的是条件不好
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-30
          • 2011-05-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多