программа для отображения, если значение равно алфавиту, затем вывести «Алфавит», если это число, затем вывести «Цифра», а для других символов вывести «Специальный символ»? - PullRequest
0 голосов
/ 04 мая 2018

Я завершила программу, но в случае отрицательных чисел она отображает специальный символ, но я не хочу, чтобы она отображала число.

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");

    }
}

} Может кто-нибудь сказать, как использовать отрицательное число 'ASCII значение или альтернативное предложение?

Ответы [ 4 ]

0 голосов
/ 04 мая 2018

Вы используете объект Scanner, почему бы не использовать его функциональность.

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();
0 голосов
/ 04 мая 2018

Символ не может содержать отрицательное значение, так как для этого требуется два символа. А переменная типа char может хранить только один символ.

И вместо использования значения ASCII можно использовать функцию, предопределенную в Символ класс.

0 голосов
/ 04 мая 2018

попробуйте так, используя регулярное выражение

    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");

      }
    }
0 голосов
/ 04 мая 2018

Согласно комментариям, если вы введете -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");

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...