Java 将空值转换为“&引用;
如何将字符串中的空值替换为“”?是否有某种方法允许字符串忽略null或将其转换为“” tl;博士 要删除任何Unicode代码点为零的Java 将空值转换为“&引用;,java,regex,string,syntax,null,Java,Regex,String,Syntax,Null,如何将字符串中的空值替换为“”?是否有某种方法允许字符串忽略null或将其转换为“” tl;博士 要删除任何Unicode代码点为零的NULL字符,请调用String::replace,同时使用十六进制零(\u0000)转义序列传递单个字符CharSequence) 细节 Java中的字符串不能包含文本和空值,只能包含其中一个。所以我猜您使用术语null在Java中并不意味着空对象引用 Unicode和ASCII中的NULL字符 您的意思必须是询问有关删除0的问题,称为。(定义见)如果我的猜测是
NULL
字符,请调用String::replace
,同时使用十六进制零(\u0000
)转义序列传递单个字符CharSequence
)
细节
Java中的字符串
不能包含文本和空值,只能包含其中一个。所以我猜您使用术语null
在Java中并不意味着空对象引用
Unicode和ASCII中的NULL
字符
您的意思必须是询问有关删除0的问题,称为。(定义见)如果我的猜测是正确的,我建议您编辑您的问题,以清楚明了,避免投反对票
为此,我们需要表示一个控制字符。问题是,根据定义,控制字符不能出现在文本中。因此,我们使用Java中的转义序列通过十六进制数识别字符。转义以反斜杠和u
开头
请注意,我们正在搜索和替换一段特定的文本(一个字符)。因此,我们应该调用而不是使用regex参数的String::replaceAll
。虽然replaceAll
在技术上是可行的,但在这里使用该方法不能代表我们的意图,是不合适的
String input = … ;
String modified = input.replace( "\u0000" , "" ) ;
示例用法
String input = "\u0000Dog\u0000Cat\u0000" ;
int lengthBefore = input.length();
String modified = input.replace( "\u0000" , "" ) ;
int lengthAfter = modified.length();
System.out.println( "lengthBefore = " + lengthBefore );
System.out.println( "lengthAfter = " + lengthAfter );
看这个
长度=9
长度之后=6
其他途径
String::trim
String::trim
方法删除前导字符和尾随字符。它对空白的定义包括NULL
字符。注意,在这个例子的中间,我们没有去除null,只在前面的空,后面是空。所以长度是7,9-2
"\u0000Dog\u0000Cat\u0000"
.trim()
.length()
七,
如果字符串只包含NULL
字符,则结果为空字符串
"\u0000"
.trim()
.length()
0
循环码点
您可以循环文本中的每个代码点。获取一个表示每个字符的代码点的IntStream
(一个int
primitives)流。测试代码点是否为零(一个
NULL`字符)
true
假的
假的
假的
真的
假的
假的
假的
真的
您可能正在寻找
String convertNull = textValueForCPR.replace("null", "");
你是说
textValueForCPR!=无效的textValueForCPR:“
?字符串。valueOf
从不返回null。它可能返回“null”
,但这不是一回事。@而且显然它确实返回null。它接受一个空的excel单元格并将其读取为空。如果您的意思是,而不是空指针(对象引用),请编辑您的问题以澄清。第一步:停止跳转到“regex”以解决所有问题。(“\u0000”,”);这似乎不可能在“replaceAll”之后写入。请在替换字符串时使用而不是替换正则表达式。@praizedamemes是的,它确实有效。参见示例。@ArvindKumarAvinash请将您的回答作为正确的回答发布,以便我可以标记您。你的答案是正确的,泰much@ArvindKumarAvinash说得好。我更改了我的代码,并提到了您关于将CharSequence
与regex作为参数传递的观点。
"\u0000"
.trim()
.length()
"\u0000Dog\u0000Cat\u0000"
.codePoints()
.forEach(
( int codePoint ) -> System.out.println( 0 == codePoint )
)
String convertNull = textValueForCPR.replace("null", "");