题解 | #替换空格#
替换空格
http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68
描述
请实现一个函数,将一个字符串中的每个空格替换成“%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; } }