我使用的代码应该可以识别某些东西是否是数字、字母等,并返回正确的响应。我收到了无法在 char 上使用布尔值的错误,所以我将输入的 char 转换为字符串。现在我正在使用下面的代码,但我不能在字符串上使用数学运算符。我需要使用 char 作为输入 b/c 程序应该能够识别字母和特殊字符。我可以改用范围吗?即“1-9”和“a-z”?我已经尝试了多种能力([1-9]、“[1-9]”等),但我不断收到错误消息。我的猜测是我的格式不正确。package charreader; import java.util.Scanner;import java.io.*;public class Charreader {public static void main(String[] args) throws IOException {Scanner newScan = new Scanner(System.in); //prompt for input and read itSystem.out.println("Enter a character.");char ch = (char)System.in.read();//convert ch to stringString st = String.valueOf(ch);if (st >= 1 && <= 9 ){ System.out.println("Digit");}else { System.out.println("Not a digit.");}我唯一开始工作的是:if (st == '0'){ System.out.println("Digit");}else { System.out.println("Not a digit.");但我不想这样运行整个程序。这会很笨拙,而且通常是不好的做法。
1 回答
holdtom
TA贡献1805条经验 获得超10个赞
在java中,我们有内置的方法。像这些字符:
char a = 'b';
Character.isDigit(a);
Character.isLetter(a);
即使对于字符串,您也可以使用这些方法:
public static boolean isNumeric(String str) {
try {
int number = Integer.parseInt(str);
return true;
} catch (Exception e) {
return false;
}
}
编辑:如果您不想使用 Character 类,我们可以这样做:
char ch = 'r';
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
System.out.println("alphabetic");
else if(ch >= '0' && ch <= '9')
System.out.println("digit");
else
System.out.println("none");
添加回答
举报
0/150
提交
取消