题解 | #替换空格#
替换空格
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[] 创建
