input.charAt(0) 不应该返回一个字符串吗?为什么 input.charAt(0) >= int 有效?



我一直在做运动。编写一个Java程序,让用户从字母表中提供一个字符。打印元音或辅音,取决于用户输入。如果用户输入的不是字母(介于a和z之间或a和z之间),或者是长度> 1的字符串,则打印错误消息。这就是答案:

import java.util.Scanner;
public class Exercise8 {

  public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Input a alphabet: ");
        String input = in.next().toLowerCase();
        boolean uppercase = input.charAt(0) >= 65 && input.charAt(0) <= 90;
        boolean lowercase = input.charAt(0) >= 97 && input.charAt(0) <= 122;
        boolean vowels = input.equals("a") || input.equals("e") || input.equals("i")
                || input.equals("o") || input.equals("u");
        if (input.length() > 1)
        {
            System.out.println("Error. Not a single character.");
        }
        else if (!(uppercase || lowercase))
        {
            System.out.println("Error. Not a letter. Enter uppercase or lowercase letter.");
        }
        else if (vowels)
        {
            System.out.println("Input letter is Vowel");
        }
        else
        {`enter code here`
            System.out.println("Input letter is Consonant");
        }
    }
}

怎么会这样,

boolean uppercase = input.charAt(0) >= 65 && input.charAt(0) <= 90;

工作吗?input.charAt()不应该返回一个字符串吗?

同样,如果有人使用

,为什么在代码的后半部分有大写和小写的区别?
toLowerCase();

了吗?

看来你既有问题又有答案。首先你需要知道charAt(0)是如何工作的,其次你想知道代码是如何工作的。如果你想知道为什么你的问题被否决,那么这就是答案。

SE不是一个代码审查站点。如果您对代码的工作/工作流程有任何具体的疑问,那么这绝对是您的地方。甚至我在第一次开始使用SE时也经历过类似的情况。别担心那些不喜欢你的人,通过你的经验你会成为提问专家的。

现在回答你的问题:

java字符串charAt()方法返回给定位置的字符值索引号。索引号从0开始

例子:

public class Solution{  
public static void main(String args[]){  
String name="StackExchange";  
char ch=name.charAt(4);//returns the char value at the 4th index  
System.out.println(ch);  
}}  

输出为k ..

还有,为什么会有大写和小写的区别如果有人使用

,则是代码的后半部分。

toLowerCase ();

这正是你应该避免在SE..

它明确地告诉我们这不是你的代码,你希望这里的人教你代码的逻辑。

不管怎样,你这个问题的答案是,

是的,完全没有必要使用大写,因为您已经在输入阶段将每个字母转换为小写字母

一些见解:

现在您已经理解了这段代码的逻辑,尝试用正则表达式实现相同的逻辑。祝你一切顺利。

input.charAt(0)不应该返回一个字符串吗?

返回一个char。检查javadoc.

为什么input.charAt(0)>= int工作?

因为charAt(0)返回一个char,而char可以(安全地!)与int比较。


话虽如此,您的代码只有在输入字符由(7位)ASCII字符组成时才能正常工作。它不能用于重音拉丁字符,希腊语,西里尔语,阿拉伯语或....其他任何事情都可以。(好吧,您可能只遇到过处理ASCII文本的问题。但是在以后的编程任务中请记住这一点。)

你的代码中还有其他的错误,正如在注释中指出的。

相关内容

最新更新