字符串替换空格
来源:互联网 发布:华为端口镜像配置 编辑:程序博客网 时间:2024/06/05 01:07
题目:实现一个函数,把字符串中的每一个空格替换为“%20”。
public class ReplaceBlack { public static void main(String[] args) { char[] result = replaceBlack("how are you!"); if (result != null) { printchar(result); } } // 替换空格 public static char[] replaceBlack(String originstr) { char[] testchar; if (originstr.length() > 00 && originstr != null) { int oldlength = originstr.length(); int newlength = getBlackCount(originstr) * 2 + oldlength;//一个字符串变成了3个多了2个 testchar = new char[newlength]; int indexOfold = oldlength - 1; int indexOfnew = newlength - 1; System.arraycopy(originstr.toCharArray(), 0, testchar, 0, originstr.toCharArray().length); System.err.println("未替换空格时的字符串"); printchar(testchar); System.err.println("替换空格后的字符串"); while (indexOfold >= 0 && indexOfold != indexOfnew) { if (testchar[indexOfold] == ' ') { testchar[indexOfnew--] = '0'; testchar[indexOfnew--] = '2'; testchar[indexOfnew--] = '%'; } else { testchar[indexOfnew--] = testchar[indexOfold]; } indexOfold--; } } else { return null; } return testchar; } public static int getBlackCount(String str) { int count = 0; for (int i = 0; i < str.length(); i++) { String teststr = String.valueOf(str.charAt(i)); if (teststr.equals(" ")) { count++; } } return count; } public static void printchar(char[] testchar) { for (int i = 0; i < testchar.length; i++) { System.err.print(testchar[i]); } System.err.println(); }}
当初我是从前往后弄得,时间复杂度为O(n的平方),看了后面的时间复杂度为O(n)的解法,算法的优化无非就是时间复杂度和空间复杂度两个方向考虑,或者取舍平衡。从前往后,遇到空格,用”%”将空格替换,之后移动后面的字符,将”2”放入,再移动后面所有的字符串,将”0”放入,再移动后面所有的字符串。从后往钱就不会出现这种现象,一次成型。注意做之前要考虑清楚这个数据后边是否有足够的空间,是在原数组处理还是额外的数上处理。
阅读全文
0 0
- 【字符串】字符串替换空格
- 替换字符串中的空格
- 字符串替换空格
- 替换字符串中的空格
- 替换字符串中的空格
- 替换字符串中的空格
- 替换字符串中的空格
- 替换字符串中的空格
- 字符串中的替换空格
- 替换字符串中空格
- 替换字符串中的空格
- 字符串中的空格替换
- 字符串替换空格算法
- 字符串空格替换
- 替换字符串中空格
- 字符串空格替换问题
- 替换字符串中的空格
- 字符串空格替换练习题
- exec族函数
- Redis超级新手指南-下
- 滴滴面试记录
- Spring中Bean的理解以及@Bean的作用
- 测试requests
- 字符串替换空格
- 三角形全等的条件有哪些?有了这个课件秒懂
- JQUERY可变透明度返回顶部代码
- 记一Jo,关于配置sqlserver2000、2008连接池的问题
- cscope 结果输出到 quickfix窗口
- 关于对已创建完的新表(尚未填入数据)进行删除主键约束的操作
- 关于正则表达式
- 解读Unity中的CG编写Shader系列4——unity中的圆角矩形shader
- CSS实现单行、多行文本溢出显示省略号(…)