【发布时间】:2013-04-17 07:42:56
【问题描述】:
我正在尝试创建一种方法,该方法可以从字符串中删除所有重复项,或者根据参数仅在一行中保留相同的 2 个字符。
例如:
helllllllo -> helo
或
helllllllo -> hello - 这保留了双字母
目前我通过以下方式删除重复项:
private String removeDuplicates(String word) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < word.length(); i++) {
char letter = word.charAt(i);
if (buffer.length() == 0 && letter != buffer.charAt(buffer.length() - 1)) {
buffer.append(letter);
}
}
return buffer.toString();
}
如果我想保留双字母,我正在考虑使用私有字符串 removeDuplicates(String word, boolean doubleLetter) 之类的方法
当doubleLetter 为真时,它将返回hello 而不是helo
我不确定在不复制大量代码的情况下最有效的方法。
【问题讨论】:
-
StringBuilder 可能会好一点
-
您也可以在 if 循环中简单地增加一个计数器,并添加另一个 if 循环,如果计数器低于阈值,则仅附加该字母 --- 这将是使用任何数字的通用版本重复(但您应该确保在扫描完最后一个字母之外的另一个字母后重新设置计数器)。
标签: java