原文:
Write a method to replace all spaces in a string with ‘%20’.
译文:
写一个函数,把字符串中所有的空格替换为%20 。
将字符串转为字符数组;变量数组找到空格的个数;申请一个新的字符数组,长度为len+2×count
public static String replaceSpace(String a) {
if (a == null) {
return null;
}
if (a.equals("")) {
return "";
}
char[] aArr = a.toCharArray();
int count = 0;
for (char c : aArr) {
if (c == ' ') {
count++;
}
}
char[] bArr = new char[aArr.length + 2 * count];
int i = 0;
for (char c : aArr) {
if (c == ' ') {
bArr[i++] = '%';
bArr[i++] = '2';
bArr[i++] = '0';
} else {
bArr[i++] = c;
}
}
return String.valueOf(bArr);
}
junit testcase
@Test
public void testReplaceSpace() {
System.out.println("replaceSpace");
assertEquals("", q1_5.replaceSpace(""));
assertEquals(null, q1_5.replaceSpace(null));
assertEquals("%20", q1_5.replaceSpace(" "));
assertEquals("Dublin%20Ireland", q1_5.replaceSpace("Dublin Ireland"));
assertEquals("%20a%20a%20", q1_5.replaceSpace(" a a "));
assertEquals("%20a%20%20", q1_5.replaceSpace(" a "));
assertEquals("%%202%200", q1_5.replaceSpace("% 2 0"));
}