题解 | #替换空格#

替换空格

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[] 创建

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务