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

Posted

技术标签:

【中文标题】检查 char 是不是不等于字母表的前 6 个字母【英文标题】: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')

【问题讨论】:

那你现在想要什么? 注意操作顺序。 && 比 || 绑定得更紧密。 【参考方案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

【讨论】:

哈哈我喜欢“哦,废话”部分,但不幸的是条件不好

以上是关于检查 char 是不是不等于字母表的前 6 个字母的主要内容,如果未能解决你的问题,请参考以下文章

用于检查 char 数组是不是包含 Java 中用户给定字母的 if 语句

实验6 (datasg段中每个单词的前4个字母改为大写字母。)

mysql中char类型保存的中文和字母怎么是一样多,char(16)保存16个字母,也可以保存16个中文,怎么不是8个

如何检查字符串是不是包含字母表中的所有字母? [复制]

[USACO16DEC]Cities and States省市

检查 BAT 文件中的特定字母 [关闭]