剑指offer第二季第三题
我们将字符串拆分为byte[] 数组 然后循环遍历 比较每个byte是否是空格 同时准备一个空的byte[]数组
1.如果是空格 我们添加%20进byte[]
2.如果不是空格 我们直接将当前byte值加入 byte[]
具体实现如下(目前有瑕疵 byte[]需要指定长度 最后替换出来的字符串后面会有很多空格子)
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
public class 替换空格 {
public static void main(String[] args) {
String str="We are happy";
String ifempty = ifempty(str);
System.out.println(ifempty);
}
public static String ifempty(String str){
byte[] strBytes = str.getBytes(StandardCharsets.UTF_8);
byte[] bytes =new byte[20];
int i=0;
for (byte strByte : strBytes) {
if (strByte==32){
bytes[i++] =37;
bytes[i++] =50;
bytes[i++] =48;
}else {
bytes[i++] =strByte;
}
}
String newStr = new String(bytes);
return newStr;
}
}