如何检查字符串中的字符是数字还是字母

use*_*604 54 java

我让用户在程序中输入单个字符,并将其存储为字符串.我想知道如何检查输入的字符是字母还是数字.我有一个if语句,所以如果它的一个字母打印它是一个字母,并且相同的数字.我到目前为止的代码不起作用,但我觉得我很接近.您可以提供的任何帮助表示赞赏.

  System.out.println("Please enter a single character: ");
  String character = in.next();

  System.out.println(character);

  if (character.isLetter()){
    System.out.println("The character entered is a letter.");
  }
  else (character.isDigit()){
    Syste.out.println("The character entered is a digit.");
Run Code Online (Sandbox Code Playgroud)

Rei*_*eus 71

你可以使用:

    if (Character.isLetter(character.charAt(0))){
    ....
Run Code Online (Sandbox Code Playgroud)


Hri*_*sto 24

您可以使用Character类中的现有方法.看看文档:

http://download.java.net/jdk7/archive/b123/docs/api/java/lang/Character.html#isDigit(char)

所以,你可以这样做......

String character = in.next();
char c = character.charAt(0);
...
if (Character.isDigit(c)) { 
    ... 
} else if (Character.isLetter(c)) {
    ...
}
...
Run Code Online (Sandbox Code Playgroud)

如果您想知道具体如何实现,您可以随时查看Java源代码.


Flu*_*fle 16

嗯,你们忘了这个Character.isLetterOrDigit方法:

boolean x;
String character = in.next();
char c = character.charAt(0);
if(Character.isLetterOrDigit(charAt(c)))
{ 
  x = true;
}
Run Code Online (Sandbox Code Playgroud)

  • 这并没有告诉你它是哪一个.它只验证它至少是一个数字或数字.对于"A"或"2",它将返回true. (2认同)

Bra*_*han 7

这有点棘手,你在键盘上输入的值是一个String值,所以你必须使用方法调出第一个字符,line.chartAt(0)其中0是第一个字符的索引,并将此值存储在char变量中,就像char c= line.charAt(0) 现在一样通过使用方法isDigit()isLetter()课程,Character您可以区分数字和字母.

这是您的程序的代码:

import java.util.Scanner;

class Practice
{
 public static void main(String[] args)
  {
   Scanner in = new Scanner(System.in);
   System.out.println("Input a letter"); 
   String line = in.nextLine();
   char c = line.charAt(0);
   if( Character.isDigit(c))
   System.out.println(c +" Is a digit");
   else if (Character.isLetter(c))
   System.out.println(c +" Is a Letter");
  }

}
Run Code Online (Sandbox Code Playgroud)


Mic*_*ael 5

通过使用正则表达式:

boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}"); 
Run Code Online (Sandbox Code Playgroud)