我需要做一些数据验证,以确保用户输入这4个选项(小,中,大,超大)中的4个之一 我从未使用String进行数据验证, 必须有另一种方法来工作吗?
verify(doseRepository).deleteById(arg.capture()); // changed to deleteById
assertEquals(dose, arg.capture());
答案 0 :(得分:3)
说实话,您还挺有经验的,我建议您首先创建一个包含可能选择的集合。
Set<String> choices = new HashSet<>(Arrays.asList("small","medium","large", "super"));
然后只需将while循环条件更改为:
while (!choices.contains(sizeChoice)){...} // while the chosen size is not in the set of choices then keep looping...
答案 1 :(得分:1)
我会寻求一个简单易读的switch语句(这不太可能是一个问题,但是请注意,您require Java 7+ to use switch with Strings)
boolean validated = false;
while (!validated);
{
switch (sizeChoice) {
case "small":
case "medium":
case "large":
case "super":
validated = true;
break;
default:
System.out.println("Must be one of the sizes listed above here.");
System.out.println("What size - small, medium, large, or super size?");
sizeChoice=input.nextLine();
}
}
答案 2 :(得分:0)
我会这样:
public static int orderSize()
{
System.out.println("What size? \n 1. small \n 2. medium \n 3. large 4. super \n 5. cancel");
int sizeChoice=input.nextInt();
while (sizeChoice < 1 || sizeChoice > 4 )
{
System.out.println("Must be one of the sizes listed above here.");
System.out.println("What size? \n 1. small \n 2. medium \n 3. large 4. super \n 5. cancel");
sizeChoice=input.nextInt();
if(sizeChoice == 5) break;
}
return sizeChoice;
}
答案 3 :(得分:0)
您似乎想使用Conditional-AND运算符。
!"small".equals(sizeChoice) && !"medium".equals(sizeChoice) && !"large".equals(sizeChoice ) && !"super".equals(sizeChoice)
正如其他用户所指出的,总是有一种聪明的方式来做同样的事情。如果您想避免重复自己的代码,则与{while循环相比,do/while
循环更好。
public static String orderSize() {
String sizeChoice = null;
do {
if (sizeChoice != null) {
System.out.println("Must be one of the sizes listed.");
}
System.out.println("What size - small, medium, large, or super size?");
sizeChoice = input.nextLine();
} while (...);
return sizeChoice;
}
答案 4 :(得分:-1)
如果您进行验证,则假定您有一个控制器。如果只有4,则将输入类型更改为Enum,然后即可进行验证。
以下内容仅是说明我的意思,它是伪代码,可能并非100%正确。
@Controller
public class ChoiceController {
@GetMapping("/choose")
public void choose(SizeEnum size) {
// rest of the owl here
}
}