Программа для определения, является ли символ прописным, строчным или числом

1

Как следует из названия, эта программа используется для определения того, является ли число прописным, строчным или числовым. У меня возникли проблемы с поиском, как написать бегун этой программы. Любая помощь будет принята с благодарностью: ^)

ГЛАВНЫЙ КЛАСС:

import static java.lang.System.*;
import java.util.Scanner;

public class characteranalyzer
{
    private char theChar;

    public characteranalyzer(char c)
    {
        theChar = c;
    }

    public void setChar(char c)
    {
        theChar = c;
    }

    public char getChar()
    {
        char getChar = theChar;
        return getChar;
    }

    public boolean isUpper()
    {
        if (((int)theChar)>64&&((int)theChar)<91){
            boolean isUpper = true;
            return isUpper;
        }
        else{
            boolean isUpper = false;
            return isUpper;

        }
    }

    public boolean isLower()
    {
        if (((int)theChar)>96&&((int)theChar)<123){
            boolean isLower= true;
            return isLower;
        }   
        else{
            boolean isLower= false;
            return isLower;
        }
    }

    public boolean isNumber()
    {
        if (((int)theChar)>48 &&((int)theChar+48)<58){
            boolean isNumber = true;
            return isNumber;
        }   
        else{
            boolean isNumber= false;
            return isNumber;
        }

    }   

    public int getASCII( )
    {
        return ((int)theChar);
    }

    public String toString()
    {
         if(isNumber()== true && isUpper() == false && isLower() == false){
                String chartype = "a number";
         return ""+getChar() + " is "+chartype+". ASCII == " + getASCII() + "\n";
            }
            else if(isNumber() == false && isUpper() == true && isLower() == false){
                String chartype = "an uppercase character";
         return ""+getChar() + " is "+chartype+". ASCII == " + getASCII() + "\n";
            }
            else if(isNumber()== false && isUpper() == false && isLower() == true){
                String chartype = "a lowercase character";
         return ""+getChar() + " is "+chartype+". ASCII == " + getASCII() + "\n";
            }
        return null;
        }     
    }

КЛАСС RUNNER:

import static java.lang.System.*;
    import java.util.Scanner;

    public class characterrunner
    {
        public static void main ( String[] args )
        {
            Scanner keyboard = new Scanner(System.in);

            out.print("Enter a letter :: ");
            char letter = keyboard.next().charAt(0);
            characteranalyzer test = new characteranalyzer(letter);
            out.println(test);   //A

            out.print("Enter a letter :: ");
            char letter2 = keyboard.next().charAt(0);
            characteranalyzer test2 = new characteranalyzer(letter2);
            out.println(test2);   //l

            out.print("Enter a letter :: ");
            char letter3 = keyboard.next().charAt(0);
            characteranalyzer test3 = new characteranalyzer(letter3);
            out.println(test3);   //a

            out.print("Enter a letter :: ");
            char letter4 = keyboard.next().charAt(0);
            characteranalyzer test4 = new characteranalyzer(letter4);
            out.println(test4);   //7

            out.print("Enter a letter :: ");
            char letter5 = keyboard.next().charAt(0);
            characteranalyzer test5 = new characteranalyzer(letter5);
            out.println(test5);   //D

            out.print("Enter a letter :: ");
            char letter6 = keyboard.next().charAt(0);
            characteranalyzer test6 = new characteranalyzer(letter6);
            out.println(test6);   //2

            out.print("Enter a letter :: ");
            char letter7 = keyboard.next().charAt(0);
            characteranalyzer test7 = new characteranalyzer(letter7);
            out.println(test7);   //X

            out.print("Enter a letter :: ");
            char letter8 = keyboard.next().charAt(0);
            characteranalyzer test8 = new characteranalyzer(letter8);
            out.println(test8);   //Z

            out.print("Enter a letter :: ");
            char letter9 = keyboard.next().charAt(0);
            characteranalyzer test9 = new characteranalyzer(letter9);
            out.println(test9);   //9


        }
    }
  • 1
    В чем проблема? Что вы хотите, чтобы произошло, и что происходит в настоящее время?
Теги:

2 ответа

2
Лучший ответ

Я предлагаю использовать Character потому что он имеет isUpperCase(char), isLowerCase(char) и isDigit(char). Вы могли бы также использовать цикл,

Scanner keyboard = new Scanner(System.in);
while (true) {
    System.out.println("Please enter a letter :: quit to stop");
    String str = (keyboard.hasNextLine()) ? keyboard.nextLine()
            : "quit";
    if (str.equalsIgnoreCase("quit")) {
        break;
    }
    char ch = str.charAt(0);
    if (Character.isUpperCase(ch)) {
        System.out.printf("%c is uppercase%n", ch);
    } else if (Character.isLowerCase(ch)) {
        System.out.printf("%c is lowercasee%n", ch);
    } else if (Character.isDigit(ch)) {
        System.out.printf("%c is a digit%n", ch);
    } else {
        System.out.printf("%c is not uppercase, lowercase "
                + "or a digit%n", ch);
    }
}

? : ? : условный оператор (или тройной) позволяет вам инициализировать String str с "quit" когда больше нет ввода из Scanner.

  • 1
    красиво и элегантно, +1 :)
  • 0
    Спасибо за хорошо сделанный ответ, я собираюсь немного его отредактировать, потому что я также хочу включить значения ASCII. Это должно мне очень помочь: ^)
2

Вы можете проверить значения ASCII:

если символ имеет значение ascii между 48 и 57 (оба включительно), то это число.

если он находится между 65 и 90 (оба включительно), то это верхний алфавит.

если он находится между 97 и 122 (оба включительно), то это строчный алфавит

вы можете ссылаться на эту ссылку для таблицы ASCII

Ещё вопросы

Сообщество Overcoder
Наверх
Меню