Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将空值转换为“&引用;_Java_Regex_String_Syntax_Null - Fatal编程技术网

Java 将空值转换为“&引用;

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或将其转换为“”

tl;博士 要删除任何Unicode代码点为零的
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", "");