Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何编写程序,使用布尔值和字符串只识别大写字母_Java - Fatal编程技术网

Java:如何编写程序,使用布尔值和字符串只识别大写字母

Java:如何编写程序,使用布尔值和字符串只识别大写字母,java,Java,我是编程和Java新手。我有一个问题,这是使我的程序只识别大写字母和显示错误消息,如果用户输入是非字母字符。我被指示使用布尔和字符串来解决这个问题。 谢谢 如果只想检查大写字母,那么一种方法是检查每个字符的ASCII值,看看它是否在65到90之间。如果字符串中的所有字符都符合此条件,则您的字符串仅包含a-Z。如果不符合此条件,则可以根据需要显示错误消息。根据您的代码,请参见下面的示例 Scanner in = new Scanner(System.in); System.out.

我是编程和Java新手。我有一个问题,这是使我的程序只识别大写字母和显示错误消息,如果用户输入是非字母字符。我被指示使用布尔和字符串来解决这个问题。 谢谢


如果只想检查大写字母,那么一种方法是检查每个字符的ASCII值,看看它是否在65到90之间。如果字符串中的所有字符都符合此条件,则您的字符串仅包含a-Z。如果不符合此条件,则可以根据需要显示错误消息。根据您的代码,请参见下面的示例

    Scanner in = new Scanner(System.in);
    System.out.println("Your message here");
    String userInput = in.nextLine();
    in.close();
    // Here you don't know what they entered
    // but looking at your code, you want 
    // only ONE uppercase character

    // validate the input
    boolean validInput = false;

    if (userInput.length() == 1) {
        char letter = userInput.charAt(0);
        if (letter >= 65 && letter <= 90) {
            validInput = true;
        }
    }

    // handle accordingly
    if (validInput) {
        // your logic here
    } else {
        System.out.println("Your error message");
    }

//这里的方法
专用布尔值isUppercaseLetter(字符c){

return(c>='A'&&c='0'&&c='!'&&c我不确定您的要求。但是我修改了您的代码,因此它可以根据我的方式运行

    Scanner in = new Scanner(System.in);
    System.out.println("Enter a single letter, and I will tell you what the corresponding digit is on the telephone:");
    String letter = in.nextLine();
    boolean hasUpper = false;


    if (letter.equals("A") || letter.equals("B") || letter.equals("C")){
        hasUpper = true;
        System.out.println("The digit 2 corresponds to the letter " + letter + " on the telephone.");
    }
    else if(letter.equals("a") || letter.equals("b") || letter.equals("c")){
        System.out.println("Error! The letter has to be uppercase.");
    }
    else{
         System.out.println("Please enter a letter.");
    }

boolean letter=letter.hassuppercase();
将letter重新指定为
boolean
而不是
字符串。您的if语句中应该会出现编译器错误。请更正它们。当您说您遇到问题时,您能告诉我您遇到了什么问题吗?我认为这看起来是一个好的开始(我看到了一些小问题,但让我们先谈谈您的问题!)您需要验证用户是否只输入了一个字符(
letter.length()==1
),然后提取该字符(
letter.charAt(0)
),并验证它是大写字母(介于
'A'
'Z'
之间)。我不知道如何编写一个代码,告诉程序只识别大写字母。
String
类中实际上没有
hassuppercase()
方法。另外,当说“使用布尔值和字符串”时,这是否意味着“仅”这个问题是可以解决的吗?这个问题是可以解决的,有一个小小的加法,<代码>字符串本身没有,但是它的作用是这样。为了提高易读性,65可以用“A”来改变,90可以用“Z'来表示。我很高兴你发现它有用。如果它解决了你的问题,考虑接受答案。如果没有,请提供更多的细节,我会尝试T。o帮助。正如Marcos所指出的,您可以将ascii值交换为它们的等效字符;请参阅“可打印字符”部分以获取更多信息。由于您的帮助,我的代码工作正常。您能否演示如何对非字母字符执行相同的操作。在用户输入数字或符号的情况下。您需要查看
if(字母>=65&&letter if(letters>=00&&letters很抱歉造成混淆。我的代码尚未完成。如果用户输入为小写“a”,则输出应为“Error!字母必须为大写”。并使用布尔值。
    // Here you don't know what they entered

    // the validation / execution changes based on your needs
    // suggestion: define other methods

    if (userInput.length() == 1) {
        char c = userInput.charAt(0);

        // what kind of character is it?
        if (isUppercaseLetter(c)) {
            // do something with the uppercase letter
        } else if (isDigit(c)) {
            // do something with the digit
        } else if (isSymbol(c)) {
            // do something with the symbol
        } else {
            // whatever else it might be, this could be an error message
        }
    }
// methods here
private boolean isUppercaseLetter(char c) {
    return (c >= 'A' && c <= 'Z'); // ascii codes 65 to 90
}

private boolean isDigit(char c) {
    return (c >= '0' && c <= '9'); // ascii codes 30 to 39
}

private boolean isSymbol(char c) {
    return (c >= '!' && c <= '/'); // 21 to 47, modify based on acceptable symbols
}
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a single letter, and I will tell you what the corresponding digit is on the telephone:");
    String letter = in.nextLine();
    boolean hasUpper = false;


    if (letter.equals("A") || letter.equals("B") || letter.equals("C")){
        hasUpper = true;
        System.out.println("The digit 2 corresponds to the letter " + letter + " on the telephone.");
    }
    else if(letter.equals("a") || letter.equals("b") || letter.equals("c")){
        System.out.println("Error! The letter has to be uppercase.");
    }
    else{
         System.out.println("Please enter a letter.");
    }