替换空格
题目描述
请实现一个函数,将一个字符串中的空格替换成 。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
Solution2:
public class Solution {
public String replaceSpace(StringBuffer str) {
String s = str.toString();
char[] ch = s.toCharArray();
StringBuffer sb = new StringBuffer(); //新建一个StringBuffer
for (int i = 0; i < ch.length; i++) {
if (ch[i] == ' ')
sb.append("%20");
else
sb.append(ch[i]);
}
return sb.toString();
}
}
Solution3://要从后往前替代,从前往后的话效率很低(遇到空格后每个字符都要移动)
public class Solution {
public String replaceSpace(StringBuffer str) {
int numSpace = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ')
numSpace++; //计算空格的个数
}
int indexOld = str.length() - 1; //原始字符串最后一个字符的下标
int newLength = str.length() + 2 * numSpace; //新字符串长度,每遇到空格,长度加2(空格=> )
int indexNew = newLength - 1; //新字符串最后一个字符的下标
str.setLength(newLength); //一定记住要扩大str的长度
for (; indexOld >= 0; indexOld--) { //从后往前扫描
if (str.charAt(indexOld) == ' ') {
str.setCharAt(indexNew--, '0');
str.setCharAt(indexNew--, '2');
str.setCharAt(indexNew--, '%');
numSpace--;
if (numSpace == 0) { //说明空格都没了,前面的字符就不用动了
break;
}
} else
str.setCharAt(indexNew--, str.charAt(indexOld));
}
return str.toString();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix