题目描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
code:
1. 实现原理:
public class Solution { public String replaceSpace(StringBuffer str) { //如果字符串为null或空串,返回空 if (null == str || 0 == str.length()) { return ""; } //定义' '个数为0 int count = 0; //遍历字符串 for (int i = 0; i < str.length(); i++) { if (' ' == str.charAt(i)) { //如果字符为' ',计数+1 count++; } } //计算新数组长度 int len = str.length() + count * 2; //定义char数组 char[] chars = new char[len]; //倒叙遍历字符串 for (int i = str.length() - 1; i >= 0; i--) { if (' ' == str.charAt(i)) { //如果为' ',数组倒叙一次添加0 2 % chars[--len] = '0'; chars[--len] = '2'; chars[--len] = '%'; } else { //不是' ',复制 chars[--len] = str.charAt(i); } } //返回新字符串 return new String(chars); } }
2. 使用java中方法:
public class Solution { public String replaceSpace(StringBuffer str) { //如果字符串为null或空串,返回空 if (null == str || 0 == str.length()) { return ""; } //转为字符串,使用replaceAll()方法 return str.toString().replaceAll(" ", "%20"); } }