剑指offer(二) 替换空格
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
一开始想到是split("\\s"),但是发现有"hello " "hello hello "的数据啊,分割后空格是不会被分配到一个数组,然后就直接replaceAll了,和replace的区别就是前者支持正则把。
//class Solution { // public String replaceSpace(StringBuffer str) { // String ans = ""; // String sstr = str.toString(); // if(sstr.equals(" ")) // return "%20"; // if(sstr.length() == 0) // return ans; // String[] ss = sstr.split(" "); // if(ss.length == 1 ) { // return ss[0] + "%20"; // } // for(int i = 0; i < ss.length; i++) { // if(i != ss.length-1 ) { // ans += (ss[i] + "%20"); // }else { // ans += ss[i]; // } // } // return ans; // } //} class Solution { public String replaceSpace(StringBuffer str) { String sstr = str.toString(); sstr = sstr.replaceAll("\\s", "%20"); return sstr; } } public class Main { public static void main(String[] args) { Solution so = new Solution(); StringBuffer str = new StringBuffer("hello"); System.out.println(so.replaceSpace(str)); } }