我是学习Java的新手,我正在尝试将用户输入更改为小写(或大写)。但它不起作用。有什么建议吗?
protected String nextMove()
{
System.out.println("Please enter move");
Scanner in = new Scanner(System.in).toUpperCase();
while (!in.hasNext("['a','b','c']"))
{
String move;
System.out.println("That is not a valid guess");
move = in.nextLine();
in.close();
return move;
}
return nextMove();
}
答案 0 :(得分:3)
扫描程序用于获取输入,而不是用于转换或转换它,并且您的代码甚至不应该编译,因为您正在调用不存在的扫描程序方法。你想要转换获得的字符串。
你可以这样做:
String myLowerCaseInput = in.nextLine().toLowerCase();
编辑:作为旁注,我非常怀疑您是否希望在此方法中创建Scanner对象,因为您只应基于System.in
创建一个扫描程序对象。如果需要,请使用参数将Scanner传递给此方法。
protected String nextMove(Scanner in) {
System.out.print("Please enter move: ");
return in.nextLine().toLowerCase();
}
或更好......
private static String nextMove(Scanner in) {
String input = "";
do {
System.out.print("Please enter move: ");
input = in.nextLine().trim().toLowerCase();
} while (input.isEmpty() || input.length() != 1 || !"abc".contains(input));
return input;
}
答案 1 :(得分:0)
尝试使用它:
Scanner in = new Scanner(System.in);
while (!in.hasNext("['a','b','c']")){
String upercase = in.nextLine().toUpperCase();
...