替换空格
作者:互联网
1 package algorithms; 2 3 /** 4 * 请实现一个函数,将一个字符串中的每个空格替换成“%20”。 5 * 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 6 * 7 */ 8 //先统计出字符串中空格的数量 确定出新串的长度(原串长度+空格数量*2) 9 //举一反三:合并两个数组时,如果从前往后复制每个数字则需要重复移动数字多次, 10 //那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率 11 public class ReplaceSpace { 12 public String replaceSpace(StringBuffer str) { 13 if (str.length() == 0) 14 return ""; 15 char[] oldStr = str.toString().toCharArray(); 16 // 统计出字符串中空格的数量 17 int count = 0; 18 for (int i = 0, len = oldStr.length; i < len; i++) { 19 if (oldStr[i] == ' ') 20 count++; 21 } 22 char[] newStr = new char[oldStr.length + count * 2]; 23 int j = 0; 24 for (int i = 0, len = oldStr.length; i < len; i++) { 25 if (oldStr[i] == ' ') { 26 newStr[j] = '%'; 27 newStr[++j] = '2'; 28 newStr[++j] = '0'; 29 } else { 30 newStr[j] = oldStr[i]; 31 } 32 j++; 33 } 34 String s = new String(newStr); 35 return s; 36 } 37 } 38 39 40 /* 看题目要求是否一定要在原字符串上进行操作 41 * 42 * public String replaceSpace(StringBuffer str) { 43 if(str==null){ 44 return null; 45 } 46 StringBuilder newStr = new StringBuilder(); 47 for(int i=0;i<str.length();i++){ 48 if(str.charAt(i)==' '){ 49 newStr.append('%'); 50 newStr.append('2'); 51 newStr.append('0'); 52 }else{ 53 newStr.append(str.charAt(i)); 54 } 55 } 56 return newStr.toString(); 57 }*/
标签:oldStr,++,newStr,空格,int,str,字符串,替换 来源: https://www.cnblogs.com/ustc-anmin/p/10630426.html