2017-02-19 80 views
0

編寫一個從用戶讀取單行文本的程序。如果結果字符串包含少於10個字符,該程序應打印「太短」;否則,它應該打印在字符串從用戶讀取單行文本java

繼承人什麼香港專業教育學院得到了這麼遠的字符數,

package exercise; 

import java.util.Scanner; 

public class ex6 { 

    public static void main(String[] args){ 


     ///creates a scanner object 
     Scanner input = new Scanner(System.in); 

     //prompt the user to enter a line of text 
     System.out.print("Enter a line of text: "); 
     String text = input.nextLine(); 

     //counts characters prints too short if text is less than 10 

     int counter = 0; 
     for(int i=0; i < text.length(); i++) { 
      if(text.charAt(i) == '$') { 
       counter++; 
      } 
       else if (text.length() < 10){ 
        System.out.println("To short"); 
      } 


      System.out.print("String Length :"); 
      System.out.println(text.length()); 

     } 
    } 
} 

與此代碼的問題是,如果我在男子例如鍵入它會打印出過短三次。輸出示例如下;

輸入一行文字:男人 短 字符串長度:3 短 字符串長度:3 短 字符串長度:3

回答

2

這是因爲你通過的長度循環串。因此,當輸入一個有4個字符的字符串時,你循環你的條件4次,打印4次。

public static void main(String[] args){ 


     ///creates a scanner object 
     Scanner input = new Scanner(System.in); 

     //prompt the user to enter a line of text 
     System.out.print("Enter a line of text: "); 
     String text = input.nextLine(); 

     //counts characters prints too short if text is less than 10 

     if (text.length() < 10) { 
      System.out.println("Too short"); 
     } else { 
      System.out.print("String Length :"); 
      System.out.println(text.length()); 
     } 
    } 

你應該避免在這種情況下使用循環。你只想檢查一次。