1、题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
2、charAt方式
(1)将取出的每一个字符转换为字符串,运用字符串的equals方法对字符进行判断是否为空格
public class Solution { public String replaceSpace(StringBuffer str){ StringBuffer stringbuffer=new StringBuffer(""); for(int i=0;i<str.length();i++){ char c=str.charAt(i); if(String.valueOf(c).equals(" ")){ stringbuffer.append("%20"); }else{ stringbuffer.append(str.charAt(i)); } } return stringbuffer.toString(); } public static void main(String [] args){ Solution solution=new Solution(); StringBuffer stringbuffer=new StringBuffer("We Are Happy."); solution.replaceSpace(stringbuffer); } }
(2)将取出的每一个字符直接与ASCII表空格的十进制进行比较判断
public class Solution { public String replaceSpace(StringBuffer str){ StringBuffer stringbuffer=new StringBuffer(""); for(int i=0;i<str.length();i++){ if(str.charAt(i)==32){ stringbuffer.append("%20"); }else{ stringbuffer.append(str.charAt(i)); } } return stringbuffer.toString(); } public static void main(String [] args){ Solution solution=new Solution(); StringBuffer stringbuffer=new StringBuffer("We Are Happy."); solution.replaceSpace(stringbuffer); } }
使用此方法虽然能够提高算法的效率,但是要对ASCII码表掌握的比较熟练
3、replaceAll方法
public class Solution { public String replaceSpace(StringBuffer str){ return str.toString().replaceAll(" ","%20"); } public static void main(String [] args){ Solution solution=new Solution(); StringBuffer stringbuffer=new StringBuffer("We Are Happy."); solution.replaceSpace(stringbuffer); } }
直接调用java的方法替换掉所有的空格,虽然能够通过测试,但是没有用到算法思想,不建议使用