我让用户在程序中输入单个字符,并将其存储为字符串.我想知道如何检查输入的字符是字母还是数字.我有一个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)
这有点棘手,你在键盘上输入的值是一个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)
通过使用正则表达式:
boolean isChar = character.matches("[a-zA-z]{1}");
boolean isDigit = character.matches("\\d{1}");
Run Code Online (Sandbox Code Playgroud)