2013-03-22 35 views
0

我有一个字符串“BC + D * E-”。我想检查字符串的每个字符是否是字母表。我尝试使用isLetter(),但它确实考虑甚至=,*和 - 作为字母。可以请帮助我在此。提前感谢检查字符串中的字母在java中

+1

而你已经尝试......什么? (张贴片段) – Wug 2013-03-22 03:36:07

+0

您可以提供您自己的新版本。写一个方法,从那里调用isLetter。如果它返回true,则退出该方法。如果不是,请检查它是否是'=','*'或'-'并返回true。如果不是,则返回false。最后三个不是顺便说一下:-)。 – 2013-03-22 03:37:33

+0

我假设你的意思是英文字母?你想用'='和'+'做什么? – 2013-03-22 03:37:43

回答

12

尝试

String s = "BC+D*E-="; 

    for (int i = 0; i < s.length(); i++) { 
     char charAt2 = s.charAt(i); 
     if (Character.isLetter(charAt2)) { 
      System.out.println(charAt2 + "is a alphabet"); 
     } 
    } 
0

将字符串分解成数组并重复它。

String word = "BC+D*E-" 
for (char c : word.toCharArray()) { 
    if(!(Character.isLetter(c)) { 
     System.out.println("Not a character!"); 
     break; 
    } 
} 
0

您可以使用英文字母的ASCII值。例如

for (char c : "BC+D*E-".toCharArray()) 
{ 
    int value = (int) c; 
    if ((value >= 65 && value <= 90) || (value >= 97 && value <= 122)) 
    { 
    System.out.println("letter"); 
    } 
} 

你可以找到ASCII表在这里:http://www.asciitable.com/

1

这个片段可以帮助你。

String startingfrom = "BC+D*E-".toUpperCase(); 
     char chararray[] = startingfrom.toCharArray(); 
     for(int i = 0; i < chararray.length; i++) { 
          int value = (int)chararray[i]; 
          if(value >= 65 && value <= 90) 
           System.out.println(chararray[i]+ " is an alphabate"); 
          else 
           System.out.println(chararray[i]+ " is not an alphabate"); 
     } 
0
String stringEx = "BC+D*E-"; 
for (char string : stringEx.toCharArray()) { 
    if (((char)string > 64) && ((char)string < 91)) 
     System.out.println("It is character"); 
    if (((char)string > 96) && ((char)string < 123)) 
    System.out.println("It is character"); 
} 

您可以使用此代码。这对你也有帮助。

相关问题