簡體   English   中英

如何檢查String是否包含多次相同的字母?

[英]How do I check if a String contains the same letter more than once?

我對如何檢查String是否包含多次相同的字母感到困惑。

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

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

假設我只想打印出包含多個“z”的任何單詞,因此只會打印“蜂鳴器”和“zappaz”。 我該怎么做?

要測試字符串是否包含兩個z,您可以執行以下操作:

 boolean ok = word.matches(".*z.*z.*")

indexOf返回...索引...字符串中的字符。 它還需要一個可選參數來指定搜索位置。 如果沒有匹配,則返回-1 所以只需使用它兩次:

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

有用!

(但是為了效率,也可以檢查第一個結果 。)

一個聰明的解決方案可能是,刪除您要搜索的字符,並將結果字符串的長度與完整的字符串進行比較。

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

不是很有效,但它的工作原理非常簡單。

public static void main(String[] args) {

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

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

  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM