限制Java中String中用户Scanner输入中的字符数

时间:2016-04-29 11:25:14

标签: java string input string-length

此代码应在用户输入时打印用户名,并将其长度限制为20个字符,但仅当用户名长度超过20个字符时才有效。当它低于20时,我会收到错误。有关如何解决这个问题的想法吗?

谢谢。

String name;

Scanner textIn = new Scanner(System.in);
System.out.print("Enter your Name ");
name = textIn.nextLine();

String cutName = name.substring(0, 20);
if (name.length()>20) {
    name = cutName;
System.out.print("Hello " +name+"!");
}

2 个答案:

答案 0 :(得分:2)

只需将较低的索引置于20和String的长度之间。

name.substring(0, Math.min(20,name.length()));

答案 1 :(得分:0)

如果将String cutName放在if中,则错误应该消失。您不能从长度超过String本身的字符串中获取子字符串。

if (name.length()>20) {
    String cutName = name.substring(0, 20);
    name = cutName;
}

System.out.print("Hello " +name+"!");