我正在Java中制作密码检查器,并且在第23行上出现语法错误,不知道为什么。
这是有语法错误的代码行:char firstLetter = word.charAt(0);
。在这一行中,我将用户输入的第一个字母设置为一个变量,这样我就可以测试它是否是元音。
import java.util.*;
public class week2LoopsProgram {
public static final int MINIMUIM_LENGTH = 5;
public static void main(String[] args) {
System.out.println("Hello! You must enter a word to pass.");
System.out.println("The word must be at least 5 characters long ");
System.out.println("and must begin with an upper or lowercase vowel.");
Scanner scan = new Scanner(System.in);
System.out.println("Please enter your word below:");
String word = scan.nextLine();
int length = word.length();
boolean correctLength = length >= MINIMUIM_LENGTH;
char firstLetter = word.charAt(0);
boolean vowelCheck(char firstLetter) {
switch (firstLetter) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
return true;
default:
return false;
}
}
}
澄清一下,我假设这只是一个学习练习。否则,您不应该限制密码中允许的字符,因为这会使密码更容易被猜测。
正如在注释中所指出的,在Java中不能在另一个方法中定义一个方法(尽管在许多其他语言中可以)。但是,您可以做的是将vowelCheck
作为变量而不是方法,并使用最新版本的Java编译器中可用的新开关表达式语法为其赋值:
boolean vowelCheck = switch (firstLetter) {
case 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' -> true;
default -> false;
};