题解 | #替换空格#
替换空格
http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68
思路:新建一个字符数组,用于存储新字符
遍历字符串,一一将字符取出来放入新数组中,遇到空格,将'%'、'2' '0'放入新数组
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ public String replaceSpace (String s) { // write code here // if(s.length() == 0 || s == null){ // return null; // } // 字符数组 // ArrayList<Character> arr = new ArrayList<>();ArrayList创建的数组就不行 // 新建字符数组,长度不会超过s.length*3 char[] arr = new char[s.length()*3]; int index = 0; // 遍历字符串 for( int i=0 ; i< s.length() ;i++){ // 该索引字符不为空格,复制到字符数组arr if( s.charAt(i) !=' ' ){ arr[index ++]=s.charAt(i); }else{ // 遇到空格,该索引位置及其后面的2个位置分别置为 %20 arr[index++] = '%'; arr[index++] = '2'; arr[index++] = '0'; } } // String类的构造方法 String(char[] value,int offset,int count) // value是字符数组,offset为字符数组的起始索引位置,count为要取的元素个数 String str = new String(arr,0,index); return str; } }
问题:
1、边界条件
没弄懂为什么这题不需要边界条件
2、字符数组用ArrarList创建在后续构造方法String(char[] value,int offset,int count)中出错
应该用char[] 创建