【发布时间】:2019-03-18 17:03:03
【问题描述】:
我使用的代码应该识别某物是否是数字、字母等,并返回正确的响应。
我遇到了无法在 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 it
System.out.println("Enter a character.");
char ch = (char)System.in.read();
//convert ch to string
String 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.");
但我不想这样运行整个程序。这将是笨拙的并且通常是不好的做法。
【问题讨论】:
-
您可能希望包含您遇到的确切错误,而不是仅仅说您遇到了错误。另请注意,无法使用
>=和<=比较字符串,也不能像您那样将字符串与字符进行比较(您的第二个示例不能与您已使其工作的陈述相反)。 -
Java 没有内置的“范围”
-
无论如何,这可能与您的问题重复:stackoverflow.com/questions/5034580/comparing-chars-in-java
-
您可以轻松使用
Character.isDigit(ch);进行检查
标签: java string if-statement range