用%20替换字符串中的空格
2016-08-04 00:00
246 查看
摘要: 用%20替换字符串中的空格
如:
given : “we are happy."
return : "we%20are%20happy."
方法一:时间复杂度为O(n^2)
这种方法,每替换一个空格,后面的元素都要往后移动,如果字符串的长度比较长的话,要替换的空格较多的话,要移动大量的元素,性能较低;
方法二:时间复杂度为 O(n):
测试:
we%20are%20happy.
如:
given : “we are happy."
return : "we%20are%20happy."
方法一:时间复杂度为O(n^2)
public static String replaceBlank1(String str) { List<String> list = new ArrayList<>(); String string = ""; for (int i = 0; i < str.length(); i++) { String s = String.valueOf(str.charAt(i)); list.add(i, s); } for (String s : list) { if (" ".equals(s)) { s = "%20"; } string = string + s; } return string; }
这种方法,每替换一个空格,后面的元素都要往后移动,如果字符串的长度比较长的话,要替换的空格较多的话,要移动大量的元素,性能较低;
方法二:时间复杂度为 O(n):
public static String replaceBlank(String string){ int len = string.length(); if (string == null && len <= 0) { return null; } //替换空格后字符串中的长度为 int nLength = numberOfBlank(string) * 2 + len; char[] temp = new char[nLength]; System.arraycopy(string.toCharArray(), 0, temp, 0, string.toCharArray().length); int indexofOriginal = len - 1; int indexofNew = nLength - 1; while (indexofOriginal >= 0 && indexofOriginal != indexofNew) { if (temp[indexofOriginal] == ' ') { temp[indexofNew--] = '0'; temp[indexofNew--] = '2'; temp[indexofNew--] = '%'; } else { temp[indexofNew--] = temp[indexofOriginal]; } indexofOriginal--; } return charToString(temp); } //打印出字符串中空格的个数 private static int numberOfBlank(String string){ int count = 0; for (int i = 0; i < string.length(); i++) { String str = String.valueOf(string.charAt(i)); if (" ".equals(str)) { count ++; } } return count; } private static String charToString(char[] c){ String str = ""; for (int i = 0; i < c.length; i++) { str += c[i]; } return str; }
测试:
public static void main(String[] args) { String str = "we are happy."; String string = ReplaceBank.replaceBlank1(str); System.out.println(string); }
we%20are%20happy.
相关文章推荐
- C++用%20替换字符串中的空格(O(n)的时间效率)
- 请实现一个方法,把字符串中的每个空格替换成 %20 ,例如,输入"We are happy.",则输出"We%20are%20happy."
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 将一个字符串中的所有空格替换为%20的源代码及测试用例
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 将字符串中的空格替换为“%20”
- 请实现一个函数,将一个字符串中的空格替换成“%20”(Python实现)
- 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 题目:请实现一个函数,将一个字符串中的空格替换成“%20”
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- Arrays_Strings 把字符串中所有的空格替换为%20 @CareerCup
- 【我的算法日记】请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。
- 把字符串中的每个空格替换程“%20”,例如输入“I love my hometown”,输出为”I%20love%20my%20hometown”
- 请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入 “We are Happly。” 则输出“we%20are%20happy。”
- 字符串替换空格替换为%20
- 剑指offer-02-将一个字符串中的空格替换成“%20”
- 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。 给定一个string
- 请实现一个函数,把字符串中的每个空格替换成“%20”。