Java 问题 - Null char 在 Mac OS 上不打印任何字符,但在 Windows 上打印空格

标签 java

我正在尝试编写一个删除文本空格的代码。我在 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 操作系统上的结果:“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));

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

关于Java 问题 - Null char 在 Mac OS 上不打印任何字符,但在 Windows 上打印空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59617643/

相关文章:

java - libgdx 的 NullPointerException

java - 如何配置maven,以便maven exec插件可以访问 'src/'之外的目录中的配置文件

java - 具有 HAR 文件输出的 MapReduce 作业

java - Powershell:使用 Process 对象捕获标准输出和错误

java - Eclipse MessageConsole : cannot generate clickable link as (Filename. java:LineNumber)

java - 可执行 jar 文件找不到 main

java - 是否可以创建一个方法来将方法作为参数传递并在其中调用?

java - 如何使用日历获取当前时间?

java - 在 NeoMAD 项目中使用 java.util.Iterator 时出错

java - onBindViewHolder 增加 onClickListener 位置