描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
给定的字符串长度不超过100。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
示例
字符串:s = "we are happy"; 结果:result = "we%20%20are%20happy"; 字符串:s = "happy "; 结果:result = "happy%20";
题解
注释的部分是我自己的理解,通过s.split("\s+")方法将字符串按空格分隔开,存进一个数组,不好的地方是不知道哪里有空格,空格有多少个,因此运行失败了。通过查阅才知道有charAt()方法,更加快速方便。
①字符串有一个方法charAt(),可以获取到每一个字符串字符的值。比如遍历打印字符串的每一个元素:
for(int i=0;i<s.length;i++){
System.out.println(s.charAt(i));
}②字符串还有第二种方法,replaceAll(String s1,String s2),可以将s1替换成s2,更加快捷。
代码
import java.util.*;
public class Solution {
/**
* @param s string字符串
* @return string字符串
*/
public String replaceSpace (String s) {
/*String result = "";
String b = "";
if(s == null || s.equals("")){
return result;
}else{
String [] arr = s.split("\\s+");
if(arr.length == 1){
return arr[0];
}else{
for(int i = 0;i<arr.length;i++){
if(i < (arr.length -1)){
b = arr[i]+"%20";
}else{
b = arr[i];
}
result = result + b;
}
return result;
}
}*/
//第一种解法
String result = "";
for(int i = 0;i<s.length();i++){
if(s.charAt(i) == ' '){
result = result + "%20";
}else{
result = result + s.charAt(i);
}
}
return result;
//第二种解法
String result = s.replaceAll(" ","%20");
return result;
}
}
京公网安备 11010502036488号