题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
题解思路
1. 调用自带函数
链接:https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423?answerType=1&f=discussion
来源:牛客网
public class Solution {
public String replaceSpace(StringBuffer str) {
// (顺序)直接int——>String,然后用replace函数替换
return str.toString().replace(" ", "%20");
}
}
说明:
(1)toString的用法
返回String对象,用法
public class Test{
public static void main(String args[]){
Integer x = 5;
// 用法1:x.toString(): 返回表示 Integer 值的 String 对象。
System.out.println(x.toString());
// 用法2:toString(int i): 返回表示指定 int 的 String 对象。
System.out.println(Integer.toString(12));
}
}
(2)replace语法:
public String replace(char oldChar, char newChar)
2. 用新的数组存
链接:https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423?answerType=1&f=discussion
来源:牛客网
import java.util.*;
public class Solution {
public String replaceSpace(StringBuffer str) {
// (顺序)新建,对字符串进行修改,不产生新的未使用对象
StringBuilder sb = new StringBuilder();
// (循环)循环次数,字符串长度,用for
// (选择)如果是空格,返回替换内容,否则,原样返回
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c == ' '){
sb.append("%20");
}else{
sb.append(c);
}
}
return sb.toString();
}
}
note:
charAt
返回指定索引处的字符。
Java StringBuffer 和 StringBuilder 类
修改字符串的时候用
java String,StringBuilder和StringBuffer类的区别
用法类似,但是StringBuilder 类能够更快,用于多线程