2017-05-07 14 views
1

私はこの文字列に "Tulos:+1"を何度も含んでいますが、その文字列に "Tulos:+1"が何回起こっているのか調べようとしますが、 。文字列にパターンが見つかりません

エラーは返されません。ただ見つからない。トーストはテスト用です。そして、それは常にcount2 = 0だと言います。ところで、そのクエリは正常に動作します。

私はこの問題はプラス文字が原因だと思いますが、私はそれを理解できません。

count2 = 0; 

while(query1.moveToNext()){ 

    String str2 = query1.getString(0); 

    Toast.makeText(kortti.this, 
      str2 + count2, Toast.LENGTH_LONG).show(); 

    Pattern p2 = Pattern.compile("Tulos: +1"); 
    Matcher m2 = p2.matcher(str2); 
    while (m2.find()){ 
     count2 +=1; 
     System.out.println(count2); 
    } 

} 
+0

それはプラス...私は何をすべきかわからなかった歌うということでした。正しい方法は "Tulos:" + "\\ +" + "1"と書くことです。私はちょうど\\ +を追加しなければならなかった – Manutti

答えて

0

文字列が"Tulos: +1"一つ以上のスペース、その後1" "文字、続く、Tulos:言います。

実際のプラスが必要な場合は、それをエスケープする必要があります。

"Tulos: \\+1"

+0

ええ、私はそれを(コメントで)考え出したが、まだありがとう! – Manutti

0

だけ試してみてください。String.indexOf(文字列str、int型fromIndexの場合)、高い性能を有する

int count = 0; 
int start = 0; 
while(true) { 
    int index = str2.indexOf("Tulos: +1", start); 
    if (index < 0) break; 

    start += 9; // 9 is length of "Tulos: +1" 
    count++; 
} 
return count; 
+0

その必要はありませんが、コメントいただきありがとうございます! – Manutti

+0

ところで、あなたはTulos:+1 ".length()'を使うことができます –

関連する問題