将用户输入更改为小写

时间:2016-01-08 16:02:43

标签: java

我是学习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();
}

2 个答案:

答案 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();
   ...