在这里,我试图模拟PHP中内置的函数"ltrim“(从字符串开头剥离字符),这里是我编写的代码
function leftTrim(string $Sstr, mixed $char) : string
{
$i = 0;
for(; $i< strlen($Sstr); $i++): // loop on the string
for($j=0; $j <strlen($char); $j++): // loop on the characters
if($Sstr[$i] === $char[$j])
{
$Sstr[$i] = " ";
break;
}
endfor;
endfor;
return $Sstr;
} 但是我发现这个代码有两个问题:
发布于 2022-06-26 06:19:15
substr()将之后的所有字符输入结果.。
当您找到不在$char.中的字符时,
不需要内部循环,您可以使用strpos()来检查字符是否在$char中。
function leftTrim(string $Sstr, mixed $char) : string
{
for($i = 0; $i< strlen($Sstr); $i++): // loop on the string
if (strpos($char, $Sstr[$i]) === false) {
break;
}
endfor;
return substr($Sstr, $i);
} 发布于 2022-06-26 08:07:12
Barmar的答案是正确的(通过修正和改进操作系统代码)。
另一种方法是将字符串拆分为一个数组,并取消设置要修剪的字符,然后将剩下的字符重新加入到字符串中:
function leftTrim(string $str, string $chars = ' '): string {
$splitted = str_split($str);
for ($i = 0; $i < count($splitted); $i++) {
if (str_contains($chars, $splitted[$i])) {
unset($splitted[$i]);
} else {
break;
}
}
return implode('', $splitted);
}https://stackoverflow.com/questions/72759283
复制相似问题