2016-04-28 5 views
1

私はカウントしたい ";"テキストファイルから一列に並んでいます。カウントする方法 ";" in line

Ex。私のテキストファイルで

  • ケース1:int a; int b;
  • ケース2:int c;
  • ケース3:int x; int y; int z; ";"

私のアウトプット予想は

  • ライン1は2を持っています行内
  • 2行目1 ";"行内
  • 行3は3 ";"行の

私のコード

Scanner (input); 

while(in.hasNext()){ 

      String line = in.nextLine(); 
      in.hasNextLine(); 
      LOC++; 
      if (line.length() >0){ 
       k = -1; 

       if(line.indexOf(";") != 1){ 
        while(true){ 
         k = line.indexOf(";"); 
         if(k<0)break; 
         cCommand++; 
        } 

       } 

      } 
     } 

System.out.println(output); 

あなたの応答をありがとうございました。

+0

あなたのコードには何の問題がありますか?あなたはそれを実行するとどうなりますか? –

答えて

3

あなたは、単に行うことができます。

int c=0; 
for(char ch : line.toCharArray()) 
{ 
    if(ch==';') c++; 
} 
+0

ああ!!!!!ご意見ありがとうございました。 – Anonymous

+1

@Anonymous Err ....これは答えです......コメントではありません! – Hackerdarshi

+0

ありがとうございます。 :) – Anonymous

0
あなたは単にStringオブジェクト 内のファイルからの入力全体を取得することができますし、 正規表現またはスプリット(「;」)を使用することができ

なしを取得するために方法を。 (例えば、split()の場合は配列の大きさ)の任意のパターン

パターンの合計が必要な場合のみ、または行単位で使用してください。簡潔な(しかし、非効率的な)アプローチはになり

LineIterator it = FileUtils.lineIterator(file, "UTF-8"); 
try { 
    while (it.hasNext()) { 
    String line = it.nextLine(); 
    int countThe = StringUtils.countMatches(line, ";"); 
    } 
} finally { 
    it.close(); 
} 
0

あなたは、私は、このような何かをcommons.utils.FileUtilsとのStringUtilsを使用することになりStringUtils

Apacheの Common Langから
int count = StringUtils.countMatches("case 3: int x; int y; int z;", ";"); 
0

を使用することができます文字列から;以外のすべてを取り除き、長さを使用してください:

int numSemicolons = str.replaceAll("[^;]", "").length(); 
1

関連する問題