我有点困惑,不知道如何检查一个字符串中是否包含多个相同的字母。
ArrayList<String> words = new ArrayList<String>();
words.add("zebra");
words.add("buzzer");
words.add("zappaz");
假设我只想打印出包含超过一个 "z" 的单词,因此只有 "buzzer" 和 "zappaz" 会被打印。我该怎么做?
我有点困惑,不知道如何检查一个字符串中是否包含多个相同的字母。
ArrayList<String> words = new ArrayList<String>();
words.add("zebra");
words.add("buzzer");
words.add("zappaz");
要测试一个字符串是否包含两个z,可以这样做:
boolean ok = word.matches(".*z.*z.*")
一个聪明的解决方案可能是,删除您想搜索的字符,并将结果字符串的长度与完整字符串进行比较。
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);
}
}