给定一个string iniString 及其长度 int len, 已知该字符串中有空格,现要求编写程序将字符串中空格替换为“%20”。返回更改后的string。假设该字符串有足够的空间存放新增的字符,并且知道原字符的长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
给定一个string iniString 及其长度 int len, 已知该字符串中有空格,现要求编写程序将字符串中空格替换为“%20”。返回更改后的string。假设该字符串有足够的空间存放新增的字符,并且知道原字符的长度(小于等于1000),同时保证字符串由大小写的英文字母组成。
"Mr John Smith",13
"Mr%20John%20Smith"
"Hello World",12
"Hello%20%20World"
import java.util.*; public class Replacement { public String replaceSpace(String iniString, int length) { StringBuffer sb = new StringBuffer(iniString); for (int i = 0; i < sb.length() ; i++) { if(sb.charAt(i)==' '){ sb.replace(i,i+1,"%20"); } } String a = String.valueOf(sb); return a; } }
publicString replaceSpace(String iniString, intlength) { returniniString.replaceAll(" ", "%20"); }
import java.util.*; public class Replacement { public String replaceSpace(String iniString, int length) { StringBuilder sb=new StringBuilder(); for(int i=0;i<length;i++) { String s=""+iniString.charAt(i); if(!s.equals(" ")) { sb.append(s); } else { sb.append("%20"); } } return sb.toString(); } }
import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class Replacement { public static String replaceSpace(String iniString, int length) { // write code here List<String> list = new LinkedList<>(); for (int i = 0; i <length ; i++) { list.add(String.valueOf(iniString.charAt(i))); } for (int i = 0; i < list.size(); i++) { if(list.get(i).equals(" ")){ list.remove(i); list.add(i,"%20" ); } } StringBuilder sb = new StringBuilder(); for(String s:list){ sb.append(s); } return String.valueOf(sb); } }
import java.util.*; /*解题思路:先遍历一遍字符串计算出字符串里有多少个空格,然后每个空格被替换为%20, 么结果字符串的长度是原来字符串的长度加上空格个数*2(每个空格多2位) 然后从后往前遍历原字符串如果遇到空格替换为%20,不过不是空格就放原字符,时间复杂度O(n)*/ public class Replacement { public String replaceSpace(String iniString, int length) { // write code here int count = 0; for (int i = 0; i < length; i++) { char c = iniString.charAt(i); if (c == ' ') { count++; } } int resCount = length + count * 2; int j = resCount - 1; char[] res = new char[resCount]; for (int i = length - 1; i >= 0; i-- ) { char c = iniString.charAt(i); if (c != ' ') { res[j] = c; j--; } else { res[j] = '0'; j--; res[j] = '2'; j--; res[j] = '%'; j--; } } return String.copyValueOf(res); } }
public String replaceSpace(String iniString, int length) { // write code here char space = " ".charAt(0); if (length <= 0){ return ""; } if (length == 1){ if (iniString.equals(" ")){ return "%20"; } } char[] chars = iniString.toCharArray(); StringBuilder stringBuffer = new StringBuilder(); for (int i = 0 ; i < length; i ++){ char aChar = chars[i]; if (aChar == space){ stringBuffer.append("%20"); }else { stringBuffer.append(aChar); } } return stringBuffer.toString(); }
public String replaceSpace(String str, int length) { // return str.replaceAll(" ", "20%"); StringBuilder sb = new StringBuilder(); for(int i=0;i<str.length();i++){ char c = str.charAt(i); if(c ==' '){ sb.append("%20"); }else{ sb.append(c); } } return sb.toString(); }
import java.util.*; public class Replacement { public String replaceSpace(String iniString, int length) { // write code here StringBuffer sb=new StringBuffer(); for(int i=0;i<length;i++){ if(iniString.charAt(i)==' '){ sb.append("%20"); }else{ sb.append(iniString.charAt(i)); } } return sb.toString(); } }
//方式一: public String replaceSpace(String iniString, int length) { if(iniString==null||"".equals(iniString)||length<=0) return iniString; return iniString.replace(" ","%20"); } //方式二 public String replaceSpace(String iniString, int length) { if(iniString==null||"".equals(iniString)||length<=0||iniString.length()!=length) return iniString; StringBuffer sb=new StringBuffer(""); for(int i=0;i<length;i++){ if(iniString.charAt(i)==' ') sb.append("%20"); else sb.append(iniString.charAt(i)); } return sb.toString(); } //方法三:一样的道理 public String replaceSpace(String iniString, int length) { if(iniString==null||"".equals(iniString)||length<=0||iniString.length()!=length) return iniString; StringBuffer str=new StringBuffer(iniString); str.insert(0,'#'); str.append('#'); String[] value=str.toString().split(" "); StringBuffer sb=new StringBuffer(); for(int i=0;i<value.length;i++){ sb.append(value[i]); if(i==value.length-1) break; else sb.append("%20"); } sb.deleteCharAt(0); sb.deleteCharAt(sb.length()-1); return sb.toString(); }
import java.util.*; public class Replacement { public String replaceSpace(String iniString, int length) { // write code here if (iniString == null || length <=0) return null; StringBuilder sb = new StringBuilder(); for (int i=0; i<length; i++){ if (iniString.charAt(i) == ' '){ sb.append('%'); sb.append('2'); sb.append('0'); } else sb.append(iniString.charAt(i)); } return sb.toString(); } }