5

String に同じ文字が複数回含まれているかどうかを確認する方法に少し混乱しています。

ArrayList<String> words = new ArrayList<String>();

words.add("zebra");
words.add("buzzer");
words.add("zappaz");

複数の「z」を含む単語のみを印刷したいとしましょう。したがって、「buzzer」と「zappaz」のみが印刷されます。どうすればいいですか?

4

4 に答える 4

6

文字列に 2 つの z が含まれているかどうかをテストするには、次のようにします。

 boolean ok = word.matches(".*z.*z.*")
于 2012-12-30T17:09:32.170 に答える
6

indexOf文字列内の文字の...インデックスを返します。また、検索する場所を指定するオプションの引数もとります。一致しない場合は、 を返します-1。したがって、2回使用してください:

s.indexOf(letter, s.indexOf(letter) + 1) > -1

できます!

(ただし、効率のために、最初の結果を確認することもできます。)

于 2012-12-30T17:12:12.000 に答える
4

検索する文字を削除し、結果の文字列の長さを完全な文字列と比較するのが賢明な解決策です。

ArrayList<String> words = new ArrayList<String>();

words.add("zebra");
words.add("buzzer");
words.add("zappaz");

for (String word : words) {
  // calculate the length difference
  if (word.length() - word.replace("z", "").length() > 1) {
    System.out.println(word);
  }
}

印刷されます:

buzzer
zappaz

あまり効率的ではありませんが、機能し、非常にシンプルです。

于 2012-12-30T17:13:15.597 に答える
3
public static void main(String[] args) {

  String s = "bazzer";
  String news = s.replaceAll("z", "");

    if(news.length() < s.length() -1 ){
        System.out.println(s);
    }

  }
于 2012-12-30T17:12:24.243 に答える