在JAVA' char [] a' ,我想用' q'替换所有的字符,除了' x'和'。我通过下面的JAVA代码尝试了它。它工作但无法替换最后一个字符。我需要帮助来完成更换。
public static void main( String[] args )
{
char[] a ={'x','y','z','x','y','r','b'};
for(int i=0; i<a.length; i++){
if ( a[i]=='x') {
i=i+1;
if ( a[i]=='y') {
i=i+1;
a[i]='q';
}
System.out.println(a);
}
}
}
答案 0 :(得分:3)
替换你的所有内容:
if ( a[i] != 'x' && a[i] != 'y' ){ a[i] = 'q'; }
答案 1 :(得分:1)
我不会检查您的代码,但我会告诉您如何实现目标。
char[] a = {'x', 'y', 'z', 'x', 'y', 'r', 'b'};
for (int i = 0; i < a.length; i++) {
if (a[i] == 'x' || a[i] == 'y') {
continue;
} else {
a[i] = 'q';
}
}
System.out.println(a);
java中的关键字continue跳过实际迭代并转到下一个。
答案 2 :(得分:0)
您需要检查当前字符(索引i
)是否不是x
或y
。如果它是其中一个字符,则for循环继续照常并检查下一个字符。
for(int i = 0; i < a.length; i++){
char c = a[i]; //get current char
if(c != 'x' && c != 'y'){ //check if it is a x or y
a[i] = 'q' //replace current char
}
}
答案 3 :(得分:0)
循环中的代码只会将q
替换为序列x, y
之后的任何字符。替换除x
和y
之外的所有字符的一种方法是将您的循环更改为:
for(int i=0; i<a.length; i++){
if ( a[i]!='x' && a[i] != 'y') {
a[i]='q';
}
}
System.out.println(a);
另请注意,您的System.out.println
似乎位于错误的位置,并且不会输出任何有用的内容。
答案 4 :(得分:0)
正如Jens指出的那样,不要修改循环计数器。 Java并不关心这一点,但你可能会这样做。假设我们在第一次迭代中,那么:
int i = 0;
if ( a[i]=='x') { // i is still 0
i=i+1; // i becomes 1
if ( a[i]=='y') { // OOPS, i is 1 here. so this is a[1] and therefore 'y'
i=i+1;
a[i]='q';
}
System.out.println(a);
}
在for
循环中,您可以使用continue;
跳过循环的其余部分并跳转到下一次迭代。
请记住,for
的退出条件只会评估一次:for
块的开头。
答案 5 :(得分:0)
if (a[i] == 'x'){i=i+1;
if (a[i] == 'y'){i=i+1;
a[i] = 'q';
}
System.out.println(a);
}
你可以这样做:
if (a[i] != 'x' || a[i] != 'y'){
a[i] = q;
System.out.println(a);
}