在Java中限制用户扫描程序以字符串形式输入的字符数

在Java中限制用户扫描程序以字符串形式输入的字符数,java,string,input,string-length,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 (na

此代码应该在用户输入用户名时打印用户名,并将其长度限制为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+"!");
}

只需取20和
字符串长度之间的较低索引

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

如果将字符串cutName放在If中,则错误应消失。不能从比字符串本身长的字符串中获取子字符串

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

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

在执行子字符串之前,必须先执行长度检查。您可以使用:
String cutName=name.length()设置System.out.print(“Hello”+name+“!”);毫无疑问,伯杰的答案也应该有效,但对于初学者来说,这似乎有点简单。是的,我两个都试过了,它们都有效,但正如你所说,你的答案对于初学者来说更简单。