Java 从字符数组中删除所有空格。can';I don’我不知道如何使它工作

Java 从字符数组中删除所有空格。can';I don’我不知道如何使它工作,java,Java,这是循环的一部分,循环会重复运行x数组中的每个字符,如果不是空格,则将其放入y数组中。但它们的y数组最终还是带有空格。这意味着无论所讨论的字符是否为“”字符,都将执行此if语句。 我如何使这个if语句真正起作用 因为两个数组使用相同的索引“i”,所以在“y”数组中为找到的任何空间留下一个“洞”: if (x[i] != 32) { y[i] = x[i]; } 使用两个不同的索引(但请

这是循环的一部分,循环会重复运行x数组中的每个字符,如果不是空格,则将其放入y数组中。但它们的y数组最终还是带有空格。这意味着无论所讨论的字符是否为“”字符,都将执行此if语句。
我如何使这个if语句真正起作用

因为两个数组使用相同的索引“i”,所以在“y”数组中为找到的任何空间留下一个“洞”:

  if (x[i] != 32)                 
            {

            y[i] = x[i];
           }
使用两个不同的索引(但请注意,我猜已初始化为“I length”的“y”将在末尾有孔),例如:

if (x[i] != ' ') {
    y[i] = x[i];
}

看起来你正在跳过索引。如果您在数组1的索引2中,那么您将把字符放在数组2中的索引2中——在之前没有发布字符的地方留下一个空格

要实现此功能,您可能需要跟踪索引:

if(x[i]!=32){
y[i]=x[index];
索引++;

}

我不知道空格码是否实际为32,但您使用与x相同的索引遍历y数组,因此它会将字符复制到相同的位置,在字符之间留下间隙(0)。

比较中没有问题。 我想您运行的代码如下:

int i = 0;
int j = 0;
while (i .... {
    if (x[i] != ' ') {
        y[j++] = x[i];
    }
    ...
}
char[]x=new char[]{'a','b','','c'};
char[]y=新字符[4];
对于(int j=0;j
字符数组用打印空字符的\u0000初始化。因此,即使比较失败,它也会将初始char值保持在该位置

尝试运行以下代码,您将看到比较失败:

    char[] x = new char[]{'a','b',' ','c'};
    char[] y = new char[4];
    for (int j = 0; j < x.length; j++) {
        if (x[j] != 32) {
            y[j] = x[j];
        }
    }
    for (int i = 0; i < y.length; i++) {
        System.out.println(y[i]);
    }
char[]x=new char[]{'a','b','','c'};
char[]y=新字符[4];
对于(int j=0;j
结果:a、b、c、

为什么不使用x[i]=''或字符。是否空白(x[i])更好(因为==''不起作用)x[i]=''呢
char[] x = new char[]{'a','b',' ','c'};
char[] y = new char[4];
for (int j = 0; j < x.length; j++) {
  if (x[j] != 32) {
    System.out.print(x[j] + ", ");
  }
}