2017-02-19 7 views
0

ユーザーから1行のテキストを読み取るプログラムを作成します。結果の文字列が10文字未満の場合、このプログラムは「あまりにも短く」出力します。それ以外の場合は、IVEは、これまでに得たものは、ユーザーから1行のテキストを読み取ります。

HERESに文字列の文字数を印刷する必要があります

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 短い 文字列の長さに: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()); 
     } 
    } 

この場合、ループを使用しないでください。一度だけチェックしたいと思う。

関連する問題