请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
/**
* 第一次的解答。
* 为多个孔空字符串就会出现err
*
* @param s
* @return
*/
public String replaceSpace(String s) {
if (s == null || s.equals("")) {
return "";
}
StringBuffer resultStr = new StringBuffer("");
String[] strs = s.split(" ");
for (int i = 0; i < strs.length; i++) {
resultStr.append(strs[i]);
// 防止最后一个字符里面添加需要替换的字符
if (i != strs.length - 1) {
resultStr.append("%20");
}
}
return resultStr.toString();
}
str.replace(" ", "%20");
public String replaceAll(String replacement) {
reset();
boolean result = find();
if (result) {
StringBuffer sb = new StringBuffer();
do {
appendReplacement(sb, replacement);
result = find();
} while (result);
appendTail(sb);
return sb.toString();
}
return text.toString();
}
/**
* 第二次
* 首先我们得明确Sting的里面也就是一个char类型数组时间复杂度是O(n)
*
*/
public static String replaceSpaceV2(String s) {
if (s.length() == 0) {
return "";
}
//此处为什么使用StringBuffer呢?因为他比String占用的内存少
StringBuffer resultStr = new StringBuffer("");
//需要知道这个toCharArray这个方法。
char[] c = s.toCharArray();
for (int i = 0; i < s.length(); i++) {
//这块由于我不知道如何判断char类型的空格等于才这样写,浪费了空间和时间
// char c1 = c[i];
// String str = c1 + "";
// if (" ".equals(str)) {
//不经常使用char类型,看看下面的操作 ' ' 和" "得区别是什么?淋漓尽致的被体现了。
if(' ' == char[i]){
resultStr.append("%20");
} else {
resultStr.append(s.charAt(i));
}
}
return resultStr.toString();
}
原题地址:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/