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