Java 如何在此代码中使用hasNext?
好的,所以问题是要写一个程序来识别元音和辅音。我需要使用Scanner和hasNext() 输出应该如下所示 输入一个字母:a a是元音 输入一个字母:b b是辅音 输入一个字母:1 1是无效输入 它将一直读取,直到到达文件末尾 教授暗示使用Java 如何在此代码中使用hasNext?,java,java.util.scanner,Java,Java.util.scanner,好的,所以问题是要写一个程序来识别元音和辅音。我需要使用Scanner和hasNext() 输出应该如下所示 输入一个字母:a a是元音 输入一个字母:b b是辅音 输入一个字母:1 1是无效输入 它将一直读取,直到到达文件末尾 教授暗示使用hasNext,因为当没有输入时,它将返回false 这就是我到目前为止的情况 Scanner input = new Scanner(System.in); System.out.print("Enter a letter: ");
hasNext
,因为当没有输入时,它将返回false
这就是我到目前为止的情况
Scanner input = new Scanner(System.in);
System.out.print("Enter a letter: ");
char letter = input.next().charAt(0);
if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
System.out.println(letter + " is a vowel");
}
else if(Character.isLetter(letter)){
System.out.println(letter + " is a consonant");
}
else {
System.out.println(letter + " is an invalid input");
}
我需要的是在输入任何输入后将其循环,它会再次要求它输入字母。使用has-Next继续循环,直到到达文件末尾。我想您没有听到或理解这个提示。您应该只使用
hasNext()
,它将确定是否还有(任何类型的)输入。判断字符是元音、辅音还是无效的逻辑是好的。您需要一个while循环,该循环使用hasNext()
来确定何时到达文件末尾。试试这个
Scanner input = new Scanner(System.in);
char letter;
System.out.print("Enter a letter: ");
while(input.hasNext())
{
letter = input.next().charAt(0);
if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U')
{
System.out.println(letter + " is a vowel");
}
else if(Character.isLetter(letter)){
System.out.println(letter + " is a consonant");
}
else {
System.out.println(letter + " is an invalid input");
}
System.out.print("Enter a letter: ");
}
所以你需要做一些事情
扫描仪输入=新扫描仪(System.in)代码>,您可以使用Scanner对象来读取文件,如下所示:
Scanner input = new Scanner(new File("path\\to\\vowels.txt"));
try {
Scanner input = new Scanner(new File("C:\\Users\\Mike\\Desktop\\vowels.txt"));
while (input.hasNext()) {
char letter = input.next().charAt(0);
if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
System.out.println(letter + " is a vowel");
}
else if(Character.isLetter(letter)){
System.out.println(letter + " is a consonant");
}
else {
System.out.println(letter + " is an invalid input");
}
}
} catch (Exception e) {
e.printStackTrace();
}
while
循环true
,因此条件是while(input.hasNext())
。这就是如何使用hasNext()
方法在有输入的情况下继续读取文件Scanner input = new Scanner(new File("path\\to\\vowels.txt"));
try {
Scanner input = new Scanner(new File("C:\\Users\\Mike\\Desktop\\vowels.txt"));
while (input.hasNext()) {
char letter = input.next().charAt(0);
if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
System.out.println(letter + " is a vowel");
}
else if(Character.isLetter(letter)){
System.out.println(letter + " is a consonant");
}
else {
System.out.println(letter + " is an invalid input");
}
}
} catch (Exception e) {
e.printStackTrace();
}
您需要文件或系统输入吗?在英语中,y、r、l有时是元音。更重要的是,您将所有非英语字母和所有重音字母计算为辅音。在脚本中识别一种语言的元音和辅音是语言学的一部分,在软件库中没有得到很好的支持。如果你写这种逻辑,一定要包括“不知道”的情况,而不是由于未陈述的假设而产生错误的结果。我想这是唯一一个你可以利用性格的例子。伊斯兰特。非常感谢你!我想在每种情况下都插入第二个系统,但我也认为这很尴尬。我也是一个初学者,一开始我认为没有什么是尴尬的。Happy Codding我还是java的初学者,现在我明白了,谢谢你的帮助。如果这个答案很有用,请选择它作为已接受,以表明你觉得它很有用。