剑指Offer 05. 替换空格(java解题)

Posted on   CrazyPixel  阅读(59)  评论(0编辑  收藏  举报

1. 题目

请实现一个函数,把字符串 s 中的每个空格替换成%20

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

限制:
0 <= s 的长度 <= 10000

2. 解题思路(通用

逐个字符遍历String字符串,并设置一个结果字符串变量re。

如果遍历到的字符不是空格,就把字符存入结果变量;
如果遍历到的字符是空格,则将%20存入结果变量;

由于结果字符串re需要增加字符,而String类型有一个特点:

  • String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了,因此re不能定义为string类型,

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer 或 StringBuilder 类。

这是java的一个知识点,具体请看String、StringBuffer、StringBuilder 的区别?

3. 数据类型功能函数总结

//String
String.length();//获得字符串长度
String.charAt(index);//获得字符串中下标index的字符
//StringBuffer
StringBuffer 变量名=new StringBuffer();//声明一个StringBuffer类型的变量
StringBuffer.append(ch);//在尾部添加字符
StringBuffer.toString();//将StringBuffer转为String类型

4. java代码

class Solution {
public String replaceSpace(String s) {
StringBuilder re=new StringBuilder();
for(int i=0;i<s.length();i++){
if(s.charAt(i)==' '){
re.append('%');
re.append('2');
re.append('0');
}
else{
re.append(s.charAt(i));
}
}
return re.toString();
}
}
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示