【发布时间】:2011-10-07 02:14:52
【问题描述】:
如何删除重复字符(例如,删除 cakkkke 中的字母 k 使其变为 cake)?
执行此操作的一种直接方法是遍历字符串的每个字符,如果该字符不是前一个字符的重复,则将字符串的每个字符附加到新字符串。
这里有一些代码可以做到这一点:
$newString = '';
$oldString = 'cakkkke';
$lastCharacter = '';
for ($i = 0; $i < strlen($oldString); $i++) {
if ($oldString[$i] !== $lastCharacter) {
$newString .= $oldString[$i];
}
$lastCharacter = $oldString[$i];
}
echo $newString;
有没有办法使用正则表达式或内置函数更简洁地做同样的事情?
【问题讨论】:
-
你对
look,free,tree这样的词有什么期望? -
@Lawrence Cherone :我希望它仅在字符出现超过 n 次时才替换。我通常会将 n 值设置为 4 或更高
-
@Lawrence Cherone - 是的,我可以发挥价值,看看什么最适合。