Java 正在擦除包含null的字符串
我想删除的消息或println中有一个空值,当我使用这样的代码时,所有这些都成功了 之前的信息:Java 正在擦除包含null的字符串,java,regex,string,null,replaceall,Java,Regex,String,Null,Replaceall,我想删除的消息或println中有一个空值,当我使用这样的代码时,所有这些都成功了 之前的信息: message = 2014-06-02 14:53:37.103 null tes 下面是删除空单词的代码 public static void main(String[] args) { //final int month = Integer.parseInt(period[0]), year = Integer.parseInt(period[1]); Date x = n
message = 2014-06-02 14:53:37.103 null tes
下面是删除空单词的代码
public static void main(String[] args) {
//final int month = Integer.parseInt(period[0]), year = Integer.parseInt(period[1]);
Date x = new Date();
Timestamp t = new Timestamp(x.getTime());
String a = "null";
String b = t+" " +a + " tes";
String tes = (b.trim()!= null && b.trim().length()>=23) ? b.trim().replaceFirst(b.trim().substring(0,28), ""+t) : b;
System.out.println("message = " + tes);
}
打印输出是正确的。它是这样的:
message = 2014-06-02 14:53:37.103 tes
但是当我插入这个|
时,打印输出出错了。我用它作为分隔符。
这就是出错的代码
public static void main(String[] args) {
//final int month = Integer.parseInt(period[0]), year = Integer.parseInt(period[1]);
Date x = new Date();
Timestamp t = new Timestamp(x.getTime());
String a = "null";
String b = t+"| " +a + " tes";
String tes = (b.trim()!= null && b.trim().length()>=23) ? b.trim().replaceFirst(b.trim().substring(0,28), ""+t) : b;
System.out.println("message = " + tes);
}
这是打印件:
message = 2014-06-02 14:58:03.148| null tes
第二个代码到底发生了什么?
谢谢正如Boris所说,还有其他方法,但主要问题是,
replaceFirst
使用正则表达式,而pipe是正则表达式中的一个特殊字符
下面介绍了该代码的工作原理:
b.trim().replaceFirst(Pattern.quote(b.trim().substring(0,28)), ""+t)
正如Boris所说,还有其他方法,但主要问题是,
replaceFirst
采用正则表达式,而管道是正则表达式中的一个特殊字符
下面介绍了该代码的工作原理:
b.trim().replaceFirst(Pattern.quote(b.trim().substring(0,28)), ""+t)
正如Boris所说,还有其他方法,但主要问题是,
replaceFirst
采用正则表达式,而管道是正则表达式中的一个特殊字符
下面介绍了该代码的工作原理:
b.trim().replaceFirst(Pattern.quote(b.trim().substring(0,28)), ""+t)
正如Boris所说,还有其他方法,但主要问题是,
replaceFirst
采用正则表达式,而管道是正则表达式中的一个特殊字符
下面介绍了该代码的工作原理:
b.trim().replaceFirst(Pattern.quote(b.trim().substring(0,28)), ""+t)
如果您想简单地去掉“null”文本字符串,而不存在上面的正则表达式问题,并且快速、干净,只需直接替换“null”字符串
b.replace("null", "")
如果您想简单地去掉“null”文本字符串,而不存在上面的正则表达式问题,并且快速、干净,只需直接替换“null”字符串
b.replace("null", "")
如果您想简单地去掉“null”文本字符串,而不存在上面的正则表达式问题,并且快速、干净,只需直接替换“null”字符串
b.replace("null", "")
如果您想简单地去掉“null”文本字符串,而不存在上面的正则表达式问题,并且快速、干净,只需直接替换“null”字符串
b.replace("null", "")
这个项目的主要目的是什么?如果只是删除字符串中的null,我会按照JamasA说的做。否则,如果您想在两个干净的字符串中获取时间戳和“tes”字符串,我将采用以下方式:
String tes = b.replace("null", "");
String[] aux = tes.split("\\|");
for (int i = 0; i < aux.length; i++) {
System.out.println(aux[i].trim());
}
String tes=b.replace(“null”,即“”);
字符串[]aux=tes.split(“\\\\”);
对于(int i=0;i
通过这种方式,您可以将这两种信息分开。我希望这将对您有所帮助:)该计划的主要目的是什么?如果只是删除字符串中的null,我会按照JamasA说的做。否则,如果您想在两个干净的字符串中获取时间戳和“tes”字符串,我将采用以下方式:
String tes = b.replace("null", "");
String[] aux = tes.split("\\|");
for (int i = 0; i < aux.length; i++) {
System.out.println(aux[i].trim());
}
String tes=b.replace(“null”,即“”);
字符串[]aux=tes.split(“\\\\”);
对于(int i=0;i
通过这种方式,您可以将这两种信息分开。我希望这将对您有所帮助:)该计划的主要目的是什么?如果只是删除字符串中的null,我会按照JamasA说的做。否则,如果您想在两个干净的字符串中获取时间戳和“tes”字符串,我将采用以下方式:
String tes = b.replace("null", "");
String[] aux = tes.split("\\|");
for (int i = 0; i < aux.length; i++) {
System.out.println(aux[i].trim());
}
String tes=b.replace(“null”,即“”);
字符串[]aux=tes.split(“\\\\”);
对于(int i=0;i
通过这种方式,您可以将这两种信息分开。我希望这将对您有所帮助:)该计划的主要目的是什么?如果只是删除字符串中的null,我会按照JamasA说的做。否则,如果您想在两个干净的字符串中获取时间戳和“tes”字符串,我将采用以下方式:
String tes = b.replace("null", "");
String[] aux = tes.split("\\|");
for (int i = 0; i < aux.length; i++) {
System.out.println(aux[i].trim());
}
String tes=b.replace(“null”,即“”);
字符串[]aux=tes.split(“\\\\”);
对于(int i=0;i
通过这种方式,您可以将两个信息分开。我希望这对您有所帮助:)旁注:
b.trim()!=空值
将永远不会帮助您。如果b
为空,您将得到一个调用trim()
的NPE。如果b
不为null,则trim()
最坏情况下将返回一个空字符串。为什么不在空格上拆分并获取前两个元素replaceFirst
依赖于正则表达式-读取。管道在正则表达式中有特殊含义。侧注:b.trim()!=空值
将永远不会帮助您。如果b
为空,您将得到一个调用trim()
的NPE。如果b
不为null,则trim()
最坏情况下将返回一个空字符串。为什么不在空格上拆分并获取前两个元素replaceFirst
依赖于正则表达式-读取。管道在正则表达式中有特殊含义。侧注:b.trim()!=空值
将永远不会帮助您。如果b
为空,您将得到一个调用trim()
的NPE。如果b
不为null,则trim()
最坏情况下将返回一个空字符串。为什么不在空格上拆分并获取前两个元素replaceFirst
依赖于正则表达式-读取。管道在正则表达式中有特殊含义。侧注:b.trim()!=空值
将永远不会帮助您。如果b
为空,您将得到一个调用trim()
的NPE。如果b
不为null,则trim()
最坏情况下将返回一个空字符串。为什么不在空格上拆分并获取前两个元素replaceFirst
依赖于正则表达式-读取。管道在regex中有一个特殊的含义。为什么我想不起来。哈哈。谢谢兄弟。很好,很简单。为什么我想不起来。哈哈。谢谢兄弟。很好,很简单。为什么我想不起来。哈哈。谢谢兄弟。很好,很简单。为什么我想不起来。哈哈,谢谢兄弟。