题目链接
解题思路
- 由于每次替换从1个字符变成3个字符,所以建立的字符数组长度为
s
的三倍 - 初始化
j = 0
,建立字符数组ans
- 从左到右遍历字符串
s
- 获取
s
的当前字符c
,如果c
是空格,则令ans[j] ='%'
,ans[j+1] = '2'
,ans[j+2] = '0'
,并将j
的值加3 - 如果
c
不是空格,则令ans[j] == c
且j++
AC代码
class Solution {
public String replaceSpace(String s) {
char[] ans = new char[s.length() * 3];
int j = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
ans[j++] = '%';
ans[j++] = '2';
ans[j++] = '0';
} else ans[j++] = c;
}
return new String(ans, 0, j);
}
}
本地测试代码
package com.company;
public class Solution_1648 {
public static String replaceSpace(String s) {
char[] ans = new char[s.length() * 3];
int j = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == ' ') {
ans[j++] = '%';
ans[j++] = '2';
ans[j++] = '0';
} else ans[j++] = c;
}
return new String(ans, 0, j);
}
public static void main(String[] args) {
System.out.println(replaceSpace("We are happy"));
}
}