如何从Java中的字符串中删除nul字符(\ 0)

Posted

技术标签:

【中文标题】如何从Java中的字符串中删除nul字符(\\ 0)【英文标题】:How to remove nul characters (\0) from string in Java如何从Java中的字符串中删除nul字符(\ 0) 【发布时间】:2016-04-08 04:59:02 【问题描述】:

我了解 C# 中的这段代码试图从字符串中删除 nul 字符 (\0)。

string.Join("", mText.Split(new string[]  "\0" , StringSplitOptions.None));

有没有办法在 Java 中有效地做到这一点?

【问题讨论】:

ScaryWombat 该字符串是从智能卡中检索的。是否有可能包含null 不知道为什么这个问题被否决了。对其答案的赞成票清楚地表明这个问题非常相关。 【参考方案1】:

你可以写:

mText.replace("\0", "");

【讨论】:

【参考方案2】:

在 Java 8+ 中,您可以使用 StringJoiner 和 lambda expression 之类的

String str = "abc\0def";
StringJoiner joiner = new StringJoiner("");
Stream.of(str.split("\0")).forEach(joiner::add);
System.out.println(str);
System.out.println(joiner);

输出是

abc
abcdef

【讨论】:

我们使用的是 android,所以这里没有 Java 8。 @SandahAung 他们升级到 Java 7 了吗? 他们有。他们还使用 OpenJDK 迁移到 Java 8 以及未来的 Android 版本。

以上是关于如何从Java中的字符串中删除nul字符(\ 0)的主要内容,如果未能解决你的问题,请参考以下文章

Java字符串替换和NUL(NULL,ASCII 0)字符?

c#如何把字符串中的指定字符删除

比较字符串忽略 NUL

如何从java中的字符串中删除无效的unicode字符

删除“NUL”字符

Java套接字在写入字节数组后仅获得NUL字符