Java 程序显示值是否为字母,然后打印;字母表;如果是’;s是一个数字,然后打印“s”;“数字”;对于其他字符,请打印“;特殊字符“;?

Java 程序显示值是否为字母,然后打印;字母表;如果是’;s是一个数字,然后打印“s”;“数字”;对于其他字符,请打印“;特殊字符“;?,java,if-statement,control-flow,Java,If Statement,Control Flow,我已经完成了程序,但在负数的情况下,它显示特殊字符,但我不希望它显示数字 public class DigitAlphabetSpecialCharacter { public static void main(String args[]) { Scanner scanner=new Scanner(System.in); char char1 =scanner.next().charAt(0); if(char1>=48 && char1<=

我已经完成了程序,但在负数的情况下,它显示特殊字符,但我不希望它显示数字

public class DigitAlphabetSpecialCharacter {
public static void main(String args[])
{
    Scanner scanner=new Scanner(System.in);
    char char1 =scanner.next().charAt(0);
    if(char1>=48 && char1<=57)
    {
        System.out.print("char is Digit");

    }
    else if((char1>='a' && char1<='z')||(char1>='A' && char1<='Z'))
    {
        System.out.print("char is Alphabet");
    }
    else
    {
        System.out.print("char is special character");

    }
}
公共类数字特殊字符{
公共静态void main(字符串参数[])
{
扫描仪=新的扫描仪(System.in);
char char1=scanner.next().charAt(0);

如果根据注释(char1>=48&&char1='a'&&char1='a'&&char1,如果您输入
-9
,您的代码将只接受
-
。您只需检查负号即可

public static void main(String args[])
    {
        Scanner scanner=new Scanner(System.in);
        char char1 =scanner.next().charAt(0);
        if((char1>=48 && char1<=57) || char1 == 45)
        {
            System.out.print("char is Digit");

        }
        else if((char1>='a' && char1<='z')||(char1>='A' && char1<='Z'))
        {
            System.out.print("char is Alphabet");
        }
        else
        {
            System.out.print("char is special character");

        }
    }
publicstaticvoidmain(字符串参数[])
{
扫描仪=新的扫描仪(System.in);
char char1=scanner.next().charAt(0);

如果根据注释((char1>=48&&char1='a'&&char1='a'&&char1),如果您输入
-9
,您的代码将只接受
-
。您只需检查负号即可

public static void main(String args[])
    {
        Scanner scanner=new Scanner(System.in);
        char char1 =scanner.next().charAt(0);
        if((char1>=48 && char1<=57) || char1 == 45)
        {
            System.out.print("char is Digit");

        }
        else if((char1>='a' && char1<='z')||(char1>='A' && char1<='Z'))
        {
            System.out.print("char is Alphabet");
        }
        else
        {
            System.out.print("char is special character");

        }
    }
publicstaticvoidmain(字符串参数[])
{
扫描仪=新的扫描仪(System.in);
char char1=scanner.next().charAt(0);

if((char1>=48&&char1='a'&&char1='a'&&char1字符不能包含负值,因为它需要两个字符。char变量只能存储单个字符


您可以使用在字符类中预定义的函数,而不是使用ASCII值。

字符不能包含负值,因为它需要两个字符。并且字符变量只能存储单个字符


您可以使用Character类中预定义的函数,而不是使用ASCII值。

使用regex尝试这样做

    public static void main(String[] args){
      Scanner scanner=new Scanner(System.in);
      String char1 = String.valueOf(scanner.next().charAt(0));

      if(char1.matches("[0-9]") || char1.matches("-[0-9]"))
      {
        System.out.print("char is Digit");

      }
      else if(char1.matches("[a-zA-Z]"))
      {
        System.out.print("char is Alphabet");
      }
      else
      {
        System.out.print("char is special character");

      }
    }

使用regex尝试这样做

    public static void main(String[] args){
      Scanner scanner=new Scanner(System.in);
      String char1 = String.valueOf(scanner.next().charAt(0));

      if(char1.matches("[0-9]") || char1.matches("-[0-9]"))
      {
        System.out.print("char is Digit");

      }
      else if(char1.matches("[a-zA-Z]"))
      {
        System.out.print("char is Alphabet");
      }
      else
      {
        System.out.print("char is special character");

      }
    }

如果您使用的是扫描仪对象,为什么不利用它的功能呢

Scanner scanner=new Scanner(System.in);
if (scanner.hasNextInt()) {
    int value = scanner.nextInt();
    System.out.print(value + " is a number");
    return;
}

String value = scanner.next();

if (value.isEmpty()) {
    return;
}
char c = value.charAt(0);

if ((c>='a' && c <= 'z') || (c>='A' && c <= 'Z')) {
    System.out.print("char is Alphabet");
} else {
    System.out.print("char is special character");
}
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
if(scanner.hasNextInt()){
int value=scanner.nextInt();
系统输出打印(值+“是一个数字”);
返回;
}
字符串值=scanner.next();
if(value.isEmpty()){
返回;
}
字符c=值。字符(0);

如果((c>='a'&&c='a'&&c您使用的是扫描仪对象,为什么不使用它的功能呢

Scanner scanner=new Scanner(System.in);
if (scanner.hasNextInt()) {
    int value = scanner.nextInt();
    System.out.print(value + " is a number");
    return;
}

String value = scanner.next();

if (value.isEmpty()) {
    return;
}
char c = value.charAt(0);

if ((c>='a' && c <= 'z') || (c>='A' && c <= 'Z')) {
    System.out.print("char is Alphabet");
} else {
    System.out.print("char is special character");
}
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
if(scanner.hasNextInt()){
int value=scanner.nextInt();
系统输出打印(值+“是一个数字”);
返回;
}
字符串值=scanner.next();
if(value.isEmpty()){
返回;
}
字符c=值。字符(0);

如果((c>='a'&&c='a'&&c一个负数至少由两个字符组成。你只检查第一个字符,减号根据你的代码是一个特殊字符。根据你刚才写的,你取的是第一个字符。很明显,在负数的情况下,第一个字符是
-
,因此是一个特殊字符。一个否定ive数字至少由2个字符组成。您只需检查第一个字符,减号根据您的代码是一个特殊字符。从您刚才写的内容来看,您正在使用第一个字符。因此,很明显,对于负数数字,第一个字符是
-
,因此是一个特殊字符。如果输入只是
-
,该怎么办?@贾蒙,由于OP只从输入中提取第一个字符,我们无法确定它是
-
还是
-9
。他在提取输入时需要更改逻辑。如果输入只是
-
?@贾蒙,由于OP只从输入中提取第一个字符,我们无法确定它是
-
还是
-9
。他说在接受输入时改变逻辑。