当这个问题出现的时候,我自己都懵了,到底是哪里出错了,下面来给大家看看出错的代码:
class Solution {
public String replaceSpace(String s) {
int length=s.length()*3;
char[] str=new char[length];
int size=0;
for(int i=0;i<length;i++){
char c=s.charAt(i);
if(c==' '){
str[size++]='%';
str[size++]='2';
str[size++]='0';
}
else{
str[size++]=c;
}
}
String newstr=new String(str,0,size);
return newstr;
}
}
这道题目是根据判断字符串中是否有对应的空格,如果有的话,就将这个空格转化成为%,如果没有的话,就直接返回对应的字符,这里面用到比较重要的就是s.charAt(i),在这里面,你需要做的就是根据判断s.charAt(i)来和空格进行比较。 新代码:
class Solution {
public String replaceSpace(String s) {
int length=s.length();
char[] str=new char[length*3];
int size=0;
for(int i=0;i<length;i++){
char c=s.charAt(i);
if(c==' '){
str[size++]='%';
str[size++]='2';
str[size++]='0';
}
else{
str[size++]=c;
}
}
String newstr=new String(str,0,size);
return newstr;
}
}
结果:
关键 这个就是对应的s.length()不要乘3,这样会造成很大的麻烦。
|