2016-03-06 181 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