Java 向forloop中的字符串添加字符
我的代码有点问题。 我想遍历一个带有for循环的字符串,将“*”替换为“*”,并用“*nc*”替换多次出现的字符,其中n是出现的次数,c是字符 我用for循环遍历字符串,但最后只得到一个字母,而不是一个完整的字符串。 如果我输入“ff”,它将正确返回*2f*,但如果我添加任何其他内容,它只会再次覆盖它 例如,如果我输入“abcdefg”,我将得到“g”而不是“abcdefg” “输入”是一个JTextFieldJava 向forloop中的字符串添加字符,java,for-loop,Java,For Loop,我的代码有点问题。 我想遍历一个带有for循环的字符串,将“*”替换为“*”,并用“*nc*”替换多次出现的字符,其中n是出现的次数,c是字符 我用for循环遍历字符串,但最后只得到一个字母,而不是一个完整的字符串。 如果我输入“ff”,它将正确返回*2f*,但如果我添加任何其他内容,它只会再次覆盖它 例如,如果我输入“abcdefg”,我将得到“g”而不是“abcdefg” “输入”是一个JTextField String inputs = input.getText(); String re
String inputs = input.getText();
String result = new String();
int counter = 1;
for(int i = 0; i < inputs.length(); i++){
if(inputs.charAt(i) == '*')result += "**";
else if(i < inputs.length()-1){
if(inputs.charAt(i) != inputs.charAt(i+1) && counter == 0){
result = result + inputs.charAt(i);
}
else if(counter != 1 && inputs.charAt(i) != inputs.charAt(i+1)){
result = (String)(result + "*" + counter + inputs.charAt(i) + "*");
}
else if(inputs.charAt(i) == inputs.charAt(i+1)){
counter++;
}
}
else if(counter != 1){
result = (String)( result + "*" + counter + inputs.charAt(i) + "*");
counter = 1;
}
else result = result + inputs.charAt(i);
String inputs=input.getText();
字符串结果=新字符串();
int计数器=1;
对于(int i=0;i
//编辑它现在可以工作了。我修复了'counter==0',但这并没有什么区别,因为我在末尾添加了字符。
我改变的另一件事是在每条语句后添加一个“continue”
for(int i = 0; i < inputs.length(); i++){
if(i < inputs.length()-1){
if(counter != 1 && inputs.charAt(i) != inputs.charAt(i+1)){
result = (String)(result + "*" + counter + inputs.charAt(i) + "*");
counter = 1;
continue;
}
else if(inputs.charAt(i) == inputs.charAt(i+1)){
counter++;
continue;
}
}
else if(counter != 1){
result = (String)(result + "*" + counter + inputs.charAt(i) + "*");
counter = 1;
continue;
}
if(inputs.charAt(i) == '*'){
result += "**";
continue;
}
else{result = result + inputs.charAt(i);}
}
for(int i=0;i
在循环开始之前,您将计数器设置为1,但在循环中检查它是否等于0。它永远不会是0,因为您对计数器所做的唯一一件事就是增加它或将它设置为1。这几乎可以肯定是您的错误所在。首先,我建议使用StringBuilder而不是String(如果是)您正在生成一个字符串。不需要continues,因为它在到达结束括号时将自动循环。此外,您没有更改int counter=1;