剑指Offer 4 替换空格
2017-03-18 21:30
225 查看
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解法
对于全部字符扫描,创建一个StringBuilder,字符不是空格就append(),是空格就append(%20);代码
public static StringBuffer replaceSpace(StringBuffer str) { String a = String.valueOf(str); char [] test = a.toCharArray(); StringBuffer b = new StringBuffer(); for (int i = 0 ; i<test.length;i++) { if (test[i]==' ') { b.append("%20"); } else b.append(test[i]); } return b; } public static StringBuilder replaceSpace1(StringBuffer str) { StringBuilder b= new StringBuilder(); for (int i = 0 ; i<str.length();i++) { if (str.charAt(i)==' ') { //b.append("%20"); b.append('%'); b.append('2'); b.append('0'); } else b.append(str.charAt(i)); } return b; }
收获
StringBuffer 线程同步,速度略低StringBuilder 线程不同步,速度快
字符串常考,所以基本的操作最好熟悉;
比如
4000
说append(),我自己敲代码根本不知道,String没有这个方法,因为String不可变;
String 不可变,所以算法题不知道用的多吗? 但是处理较少的字符串,String还是可以用的;
String家族有个charAt()方法,负责提取目标位置的字符
String b = "hello world"; System.out.println(b.charAt(4));
相关文章推荐
- 剑指offer--面试题4:替换空格
- 剑指offer:替换空格
- 剑指offer面试题[4]-空格替换
- 剑指offer中替换空格为"%20"
- 剑指Offer面试题2:替换空格
- 剑指Offer:面试题4 替换空格
- 剑指offer 替换空格
- 剑指Offer - 九度1510 - 替换空格
- 牛客网-剑指Offer-替换空格
- 牛客网_剑指offer_第二题替换空格_C++/C
- 【剑指offer】替换空格
- 【剑指offer】第四题 替换空格
- 剑指Offer_02_替换空格
- 剑指offer-2.替换空格
- 剑指offer 面试题4 替换空格
- 剑指offer之替换字符串中的空格
- 【剑指offer】替换空格
- 剑指offer替换空格问题
- 剑指Offer面试题5:替换空格程序调试与错误解决方法
- 剑指Offer----面试题四:替换空格