为了账号安全,请及时绑定邮箱和手机立即绑定

对范围使用 if/else 语句

对范围使用 if/else 语句

鸿蒙传说 2021-11-17 10:22:49
我使用的代码应该可以识别某些东西是否是数字、字母等,并返回正确的响应。我收到了无法在 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");


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信