剑指office----替换空格
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
问题分析:
-
这道题不难,我们可以通过循环判断字符串的字符是否为空格,是的话就利用append()方法添加追加“%20”,否则还是追加原字符。
-
或者最简单的方法就是利用: replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
/**
* @author LanceQ
* @version 1.0 2021/4/23
*/
public class ReplaceSpaces {
public static void main(String[] args) {
String s="We Are Happy";
String s1="We Are Happy";
System.out.println(change(s));
System.out.println(change1(s1));
}
private static String change(String s) {
int len=s.length();
char a='a';
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
a=s.charAt(i);
if(String.valueOf(a).equals(" ")){
sb.append("%20");
}else {
sb.append(a);
}
}
return String.valueOf(sb);
}
private static String change1(String s) {
//两种替代的空格方式
// return s.replaceAll(" ","%20");
return s.toString().replaceAll("\\s","%20");
//用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。
//\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\".
//String类型中的空格用“\s”表示,
}
}
String.valueOf(a)把char类型转换成String类型
public static String valueOf(char c) {
char data[] = {c};
return new String(data, true);
}
s.charAt(i)因为String的底层本质上是一个char[]数组,只需要要传递一个你要找的值的位置好过去,就可以返回那个位置的字符。
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}