2016-11-01 55 views
1

単純な文字列メソッドを使用して文字列内の単語を数え、「記号を見つけることができません」というエラーが発生したプログラムを作成しようとしています。私はこれが "カウント"変数のためだと知っていますが、私はこれを行うための他の方法を考えることはできません。どんな助けもありがたい。私が使用しているロジックはスペースをカウントして、1JAVAの文字列内の単語を数える

import java.util.Scanner; 
public class exam{ 
    public static void main(String[]args) 
    { 

     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter"); 
     String s1= new String(scan.nextLine()); 

     for(int num1 =0; num1<= s1.length()-1; num1++) 
     { 

     if(s1.charAt(num1)==' ') 
     { 
      int count =0; 
      count++; 
     } 

     System.out.println(count+1); 
     } 
    } 
} 
+0

ループ外で宣言する必要があります。 –

答えて

1

を追加してところで はif条件の外count変数を宣言します。このよう

if(s1.charAt(num1)==' ') 
{ 
int count =0; 
count++; 
} 

:この代わりの "シンボルを見つけることができません" エラーを解決しますが、あなたのプログラムがまだ壊れてしまいます

int count =0; 
if(s1.charAt(num1)==' ') 
{ 
count++; 
} 

修正するには、forループ外の宣言を移動します。

Btwプログラムがひどくフォーマットされています。 IntelliJやEclipseのようなIDEを使って、それをうまく再フォーマットしてください。

+0

私は本当にforループからそれを動かすとは思わなかったのですが、それはありがたいことです。あなたの助けを借りて、別のIDEに感謝します。 –

0

Java 8を使用している場合は、ラムダと関数型プログラミングを試すことができます。たとえば、文字列のスペースの数を数え、lambdaを使用して1つを追加する方法の1つは次のようになります。

import java.util.Scanner; 

public class stream { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Enter"); 
     String s1= new String(scan.nextLine()); 
     System.out.println(s1.chars().reduce(1, (a, b) -> a + (b == ' ' ? 1 : 0))); 
    } 
} 

希望します。

関連する問題