Java密码检查器,至少5个字符,必须以元音开头



我正在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;
};

相关内容

最新更新