Java用字符串中的字符串替换字符
你能告诉我哪里出错了吗Java用字符串中的字符串替换字符,java,string,replace,Java,String,Replace,你能告诉我哪里出错了吗 public static char[] replaceSpaces(String string){ int length = string.length(); int spaceCount = 0; for(int i =0; i<=length-1;i++){if(string.charAt(i)==' '){spaceCount++;}} int index = length + spaceCount*2; cha
public static char[] replaceSpaces(String string){
int length = string.length();
int spaceCount = 0;
for(int i =0; i<=length-1;i++){if(string.charAt(i)==' '){spaceCount++;}}
int index = length + spaceCount*2;
char[] charString = new char[index];
int k=0;
for(int i=0;i<index-1;i++){
if(string.charAt(k) == ' '){
charString[i] = '%';
charString[i+1] = '2';
charString[i+2] = '0';
i = i +2;
k=k+1;}
else
charString[i] = string.charAt(k);
k++;
}
return charString;}
}
publicstaticchar[]replaceSpaces(字符串){
int length=string.length();
int spaceCount=0;
对于(inti=0;i为什么要编写自己的方法
String yourString = "my test string".replace(" ", "%20");
为什么要编写自己的方法
String yourString = "my test string".replace(" ", "%20");
您可以使用replaceAll()方法:
String newString = string.replaceAll(" ","%20");
您可以使用replaceAll()方法:
String newString = string.replaceAll(" ","%20");
您应该只使用String.replace()
简单的错误是,您忘记了else语句的大括号,所以要么这样做
else
{
charString[i] = string.charAt(k);
k++;
}
或者因为k=k+1
相当于k++
将您的更改为
for(int i = 0; i < index; i++) // also change your index
{
if(string.charAt(k) == ' ')
{
charString[i] = '%';
charString[i+1] = '2';
charString[i+2] = '0';
i = i +2;
}
else
{ // these braces are not needed now but inculde them to make my
// point above valid
charString[i] = string.charAt(k);
}
//increment every time
k++;
}
for(int i=0;i
这将解决您遇到的两个问题您只需使用String.replace()
简单的错误是,您忘记了else语句的大括号,所以要么这样做
else
{
charString[i] = string.charAt(k);
k++;
}
或者因为k=k+1
相当于k++
将您的更改为
for(int i = 0; i < index; i++) // also change your index
{
if(string.charAt(k) == ' ')
{
charString[i] = '%';
charString[i+1] = '2';
charString[i+2] = '0';
i = i +2;
}
else
{ // these braces are not needed now but inculde them to make my
// point above valid
charString[i] = string.charAt(k);
}
//increment every time
k++;
}
for(int i=0;i
这将解决您遇到的两个问题为什么不直接使用String.replace
?为什么不直接使用String.replace
?为什么在这里使用replaceAll
而不是replace
呢?出于他的目的,它们的工作原理相同,但replaceAll还增加了使用正则表达式的功能。我不能使用repalceAll或replace方法作为赋值的一部分。为什么在这里使用replaceAll
而不是replace
?出于他的目的,它们的工作原理相同,但replaceAll还增加了使用正则表达式的能力。我不能将repalcell或replace方法作为赋值的一部分。