java如何替换或过滤掉 \0 ,我遇到这个问题,一直没有解决,有高手相助吗?

时间:2022-08-09 16:12:59
java如何替换或过滤掉 \0 ,我遇到这个问题,一直没有解决,有高手相助吗?

有这个 \0 在easyui的datagrid中显示就会出现错乱,有谁遇到过这个问题?

9 个解决方案

#1


正则?
为啥会出来这个东西...
这个是不是代表null来着

#2


"原文本".replaceAll("\\0", "");

#3


引用 2 楼 finemi 的回复:
"原文本".replaceAll("\\0", "");


Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal octal escape sequence near index 2
\0
  ^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.o(Pattern.java:3139)
at java.util.regex.Pattern.escape(Pattern.java:2266)
at java.util.regex.Pattern.atom(Pattern.java:2164)
at java.util.regex.Pattern.sequence(Pattern.java:2046)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)
at est.Test.main(Test.java:12)

java如何替换或过滤掉 \0 ,我遇到这个问题,一直没有解决,有高手相助吗?

#4


引用 2 楼 finemi 的回复:
"原文本".replaceAll("\\0", "");


package est;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
String s= "12341234\0ddd12348979xasfasdf";
int y =s.length();
int x= s.indexOf("\n");
String s1= s.replaceAll("\n", "").replaceAll(" ", "");
String s2=s.replaceAll("\0", "");
String s3=s.replaceAll("\\0", "");
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);

}

}
你试一下看。

#5


感觉重点还在这个\0哪里来的入手
\012好像是8进制\n的ascii码,如果单独能换掉那原本的\n不知道会怎么样
会不会都变成了12这样的东西...
正则不大熟...

#6


\\0  替换\0

#7


引用 3 楼 bill1 的回复:

我写的"\\0",你非得改成"\0" 来测试,能不错吗?

#8


引用 7 楼 finemi 的回复:
Quote: 引用 3 楼 bill1 的回复:

我写的"\\0",你非得改成"\0" 来测试,能不错吗?

你看下,各种方式的结果都是错误的。

#9


replaceAll("\\\\0", "")

#1


正则?
为啥会出来这个东西...
这个是不是代表null来着

#2


"原文本".replaceAll("\\0", "");

#3


引用 2 楼 finemi 的回复:
"原文本".replaceAll("\\0", "");


Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal octal escape sequence near index 2
\0
  ^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.o(Pattern.java:3139)
at java.util.regex.Pattern.escape(Pattern.java:2266)
at java.util.regex.Pattern.atom(Pattern.java:2164)
at java.util.regex.Pattern.sequence(Pattern.java:2046)
at java.util.regex.Pattern.expr(Pattern.java:1964)
at java.util.regex.Pattern.compile(Pattern.java:1665)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)
at est.Test.main(Test.java:12)

java如何替换或过滤掉 \0 ,我遇到这个问题,一直没有解决,有高手相助吗?

#4


引用 2 楼 finemi 的回复:
"原文本".replaceAll("\\0", "");


package est;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
String s= "12341234\0ddd12348979xasfasdf";
int y =s.length();
int x= s.indexOf("\n");
String s1= s.replaceAll("\n", "").replaceAll(" ", "");
String s2=s.replaceAll("\0", "");
String s3=s.replaceAll("\\0", "");
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);

}

}
你试一下看。

#5


感觉重点还在这个\0哪里来的入手
\012好像是8进制\n的ascii码,如果单独能换掉那原本的\n不知道会怎么样
会不会都变成了12这样的东西...
正则不大熟...

#6


\\0  替换\0

#7


引用 3 楼 bill1 的回复:

我写的"\\0",你非得改成"\0" 来测试,能不错吗?

#8


引用 7 楼 finemi 的回复:
Quote: 引用 3 楼 bill1 的回复:

我写的"\\0",你非得改成"\0" 来测试,能不错吗?

你看下,各种方式的结果都是错误的。

#9


replaceAll("\\\\0", "")