Java 正在验证用户字符串输入
我正在努力完成一些家庭作业的代码。但是这一行代码对我来说似乎并不正确。我希望用户只输入以下字符串:大一、大二、大三或大四。任何其他输入都是无效的 不知道还可以尝试什么,我对java相当陌生Java 正在验证用户字符串输入,java,Java,我正在努力完成一些家庭作业的代码。但是这一行代码对我来说似乎并不正确。我希望用户只输入以下字符串:大一、大二、大三或大四。任何其他输入都是无效的 不知道还可以尝试什么,我对java相当陌生 while (true) { System.out.println("Enter undergraduate level: "); lvl = inReader.nextLine(); if (lvl != "freshman" || lvl != "sophomore" || lvl != "j
while (true) {
System.out.println("Enter undergraduate level: ");
lvl = inReader.nextLine();
if (lvl != "freshman" || lvl != "sophomore" || lvl != "junior" || lvl != "senior") {
System.out.println("Please enter valid level.");
} else {
break;
}
}
我希望输入只接受大一、大二、大三和大四的输入,但它不接受输入,只显示“请输入有效级别”。将所有的“| |”更改为“&&&”
if (!"freshman".equals(lvl) && !"sophomore".equals(lvl) && !"junior".equals(lvl) && !"senior".equals(lvl)) {
但最好创建一组有效字符串,并检查输入字符串是否在该字符串集中
Set<String> validStrings = new HashSet<>();
validStrings.add("freshman");
validStrings.add("sophomore");
validStrings.add("junior");
validStrings.add("senior");
...
if(!validStrings.contains(lvl) {
System.out.println("Please enter valid level.");
}
Set validStrings=new HashSet();
有效字符串。添加(“新生”);
有效字符串。添加(“二年级”);
有效字符串。添加(“初级”);
有效字符串。添加(“高级”);
...
如果(!validStrings.contains)(lvl){
System.out.println(“请输入有效级别”);
}
我建议使用合适的IDE。大多数IDE都表明,试图比较两个不相等的字符串是错误的
背景:Java将字符串存储为字符数组。如果将两个字符串与“==”进行比较,则会比较字符数组的位置,而不是它们的内容
因此,您应该调用string.equals(otherString),因为这会比较基础数组的内容。如果数组中每个位置的字符匹配,.equals()的计算结果为true,否则为false。这一点,OP还需要解决字符串比较的问题。这是如何获得追加投票的?成功了!谢谢!