2016-03-06 222 views
2

如何在n个字符后限制用户的输入str = key.next();?我希望str应该只保存特定数量的字符。我对编程很陌生,任何帮助将不胜感激。扫描仪:如何在n个字符后限制扫描仪输入?

 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

你一个简单的解决方法是获取最多n个字符长返回的输入字符串的子:

if (str.length() > n) { 
    str.substring(0, n+1); 
} 

其中n是最大长度你想海峡是。此代码段将在str = key.next();

请注意String.substring是包含开始索引但不包括结束索引。

我希望这会有所帮助。

0

千万不要错过System.in直接,而是通过一个包装System.in实施InputStream。在这个包装中,您可以轻松限制返回的字符数。

0

您可以将正则表达式传递给方法next(String pattern)(或者可能是findInLine(String))。例如:

str = key.next(".{10}"); 

会将接下来的10个字符放入str