对范围使用 if/else 语句

我使用的代码应该可以识别某些东西是否是数字、字母等,并返回正确的响应。


我收到了无法在 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.");

但我不想这样运行整个程序。这会很笨拙,而且通常是不好的做法。


鸿蒙传说
浏览 128回答 1
1回答

holdtom

在java中,我们有内置的方法。像这些字符:char a = 'b';Character.isDigit(a);Character.isLetter(a);即使对于字符串,您也可以使用这些方法:public static boolean isNumeric(String str) {&nbsp; &nbsp;try {&nbsp; &nbsp; &nbsp; &nbsp;int number = Integer.parseInt(str);&nbsp; &nbsp; &nbsp; &nbsp;return true;&nbsp; &nbsp;} catch (Exception e) {&nbsp; &nbsp; &nbsp; &nbsp;return false;&nbsp; &nbsp;}}编辑:如果您不想使用 Character 类,我们可以这样做:char ch = 'r';if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))&nbsp; &nbsp; System.out.println("alphabetic");else if(ch >= '0' && ch <= '9')&nbsp; &nbsp; System.out.println("digit");else&nbsp; &nbsp; System.out.println("none");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java