即时通讯试图使代码删除文本的空格。我已经在Mac上对此进行了编程,以得到所需的结果,但是在Windows上运行相同的代码时,它将空字符(Ascii代码0)打印为空白。

声明:“ MetodosComunes.leerTextoPorTeclado()”使用户引入一个字符串,并将其分配给变量“ textoPuro”。

public static void main(String[] args) {

    String textoPuro;

    char espacio = ' ';

    System.out.println("Introduzca una frase: ");

    textoPuro = MetodosComunes.leerTextoPorTeclado();

    char[] contenido = new char[textoPuro.length()];

    for (int i = 0; i < textoPuro.length(); i++) {

        contenido[i] = textoPuro.charAt(i);

        if (contenido[i] == espacio) {

            contenido[i] = 0;

        }

        System.out.print(contenido[i]);

    }

}


如果我输入“你好吗” ...

在Mac OS上的结果:“ Howareyou”

Windows上的结果:“你好吗”

在Windows中,它实际上进入条件中,并将空字符分配给该元素,但它始终是空白。

最佳答案

而不是插入0,您应该完全跳过字符:

int k = 0;

for (int i = 0; i < textoPuro.length(); i++) {
    char c = textoPuro.charAt(i);

    if (c != espacio) {
        contenido[k++] = c;
    }
}

System.out.println(String.valueOf(contenido, 0, k));


这只会将非空格字符放入数组中。

09-27 10:07