php - 如何只使用“循环”来删除句子中所有多余的空格,而不使用字符串修剪功能和字符串替换功能?
问题描述
在 PHP 中,我尝试使用“循环”来删除所有多余的空格。(不使用字符串修剪函数和字符串替换函数)例如,
" I Love PHP"
> "I Love PHP"
。单词之间应该只有一个空格。
任何想法?谢谢
$newstr = " "
for ($i = 0; $i < strlen($s), $i++ )
{
$newstr = $newstr.substr($s, $i, 1);
if (substr($s, $i, 1) == " ")
while(substr($s, $i + 1, 1) == " ")
$i++;
}
print (" test test test ")
?>
解决方案
您的for
语句中有语法错误,它应该是;
before $i++
。
您需要首先跳过输入字符串开头的所有空格。
字符串末尾的任何空格都将被压缩为一个空格,您需要检查并删除它。
<?php
$newstr = "";
$s = " I Love PHP ";
$len = strlen($s);
// skip over initial spaces
while ($i < $len && $s[$i] == " ") {
$i++;
}
for (; $i < $len; $i++ )
{
$newstr .= $s[$i];
if ($s[$i] == " ") {
while($i < $len-1 && $s[$i+1] == " ") {
$i++;
}
}
}
if ($newstr[strlen($newstr)-1] == " ") {
// remove trailing space
$newstr = substr($newstr, 0, strlen($newstr)-1);
}
var_dump($newstr);
推荐阅读
- javascript - 使用 RequestAnimationFrame 创建循环计数器
- javascript - ChartJs 内存泄漏 | 垃圾收集在渲染后不清理图表对象或数组
- jquery - 如何在 Jquery 中检测 td 内容中的行分隔?
- python - 如何在 Python 中将尺度图从 CWT 转换为 RGB 图像?
- apache - 在共享主机域上禁用 Apache(批量)modpagespeed
- google-cloud-platform - 使用 GCP Cloud VPN 在站点到站点 VPN 用例中将 GKE 集群 pod IP 地址隐藏在单个 IP 地址后面
- android - View Binding 对应用程序大小的影响有多大?
- angular - Angular Mat Paginator:如何防止页面更改或页面大小更改?
- python - 在 Python 中减少“i”的值
- python - 带有 Pandas DataFrame 的点图/Ggplot;列名作为 x 值,对应的列值作为 y 值