如何在n个字符后限制用户的输入str = key.next();
?我希望str
只能容纳一定数量的字符。我是编程的新手,任何帮助都将不胜感激。
String str;
int k;
int n =1000;
String min="";
String max="";
Scanner key = new Scanner(System.in);
str = key.next();
k = key.nextInt();
max = str.substring(0,k);
min = str.substring(0,k);
for (int i=0; i<str.length()-k+1; i++){
if (str.substring(i, i+k).compareTo(max)>0){
max = str.substring(i, i+k);
}
else if (str.substring(i, i+k).compareTo(min)<0){
min = str.substring(i, i+k);
}
}
System.out.println(min + "\n" + max);
答案 0 :(得分:0)
不要直接传递System.in
,而是将包装器传递给实现System.in
的{{1}}。在此包装器中,您可以轻松限制返回的字符数。
答案 1 :(得分:0)
一个简单的解决方法是获取最多n个字符长的返回输入字符串的子字符串:
if (str.length() > n) {
str.substring(0, n+1);
}
其中n是您想要的最大长度。此代码段将在str = key.next();
请注意,String.substring
包含起始索引,但不包括结束索引。
我希望这会有所帮助。
答案 2 :(得分:0)
您可以将正则表达式传递给方法next(String pattern)
(或者findInLine(String)
)。例如:
str = key.next(".{10}");
会将接下来的10个字符放入str
。