剑指Offer——替换空格
2016-04-22 22:17
288 查看
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。编程思路:
public class 替换空格 { public static void main(String[] args) { StringBuffer sb = new StringBuffer("Hello World hao zhong"); System.out.println(sb); System.out.println(replaceSpace1(sb)); System.out.println(replaceSpace2(sb)); System.out.println(replaceSpace3(sb)); System.out.println(replaceSpace4(sb)); } //方法1:使用StringBuffer中的replace和insert方法 public static String replaceSpace1(StringBuffer str) { for(int i = 0;i<str.length();i++){ if(str.charAt(i)==' '){ str.replace(i, i+1, "%"); str.insert(i+1, "20"); } } return str.toString(); } //方法2:使用Sting中的replaceAll方法(有正则表达式) public static String replaceSpace2(StringBuffer str) { return str.toString().replaceAll("\\s","%20"); // return str.toString().replaceAll(" ", "%20"); } //方法3:使用StingBuffer中的append方法(有正则表达式) public static String replaceSpace3(StringBuffer str) { char[] strChar = str.toString().toCharArray(); StringBuffer stb = new StringBuffer(); for(int i=0;i<strChar.length;i++){ if(strChar[i]==' '){ stb.append("%20"); }else{ stb.append(strChar[i]); } } return stb.toString(); } //方法4:在创建一个扩充长度后的字符数组。 public static String replaceSpace4(StringBuffer str) { int space_num = 0; for(int i = 0;i<str.length();i++){ if(str.charAt(i) == ' ') space_num++; } char[] ch = new char[str.length()+2*space_num]; for(int i = 0,j = 0;i<str.length();){ if(str.charAt(i) == ' '){ ch[j++] = '%'; ch[j++] = '2'; ch[j++] = '0'; i++; }else{ ch[j++] = str.charAt(i++); } } return String.valueOf(ch); } }
相关文章推荐
- html中的input文本框完成格式错误提示功能
- jQuery异步提交时显示正在加载的提示
- RN(react native)入坑指南-附录A,常用命令
- 【POJ 3294】Life Forms 不小于k个字符串中的最长子串
- JSP基础
- 深夜课堂:(function($){})(jQuery)函数以及其它jQ函数
- Web学习之css
- [剑指offer]斐波那契数列
- js上移、下移、置顶、置底功能实现
- CSS3学习笔记
- 从零开始学_JavaScript_系列(十一)——dojo(5)(GRID表格进阶:更新值,name,重置表结构/缓存,重绘表格)
- javascript 的 继承(二) 之 借用构造函数继承
- js正则表达式学习和总结
- 剑指offer(二十三)之最小的K个数
- js获取当前事件键盘按钮
- javascript要小心函数嵌套
- js--DOM--3.DOM2和DOM3
- 【一天一道LeetCode】#24. Swap Nodes in Pairs
- 【一天一道LeetCode】#24. Swap Nodes in Pairs
- 那些年踩过的CSS坑(永久更新)