【问题标题】:Java String Split by "|"Java字符串由“|”分割
【发布时间】:2013-04-25 01:37:08
【问题描述】:

我正在尝试使用由“|”分隔的 Java 解析一些数据顺序。以下是数据示例。

String s = "111206|00:00:00|2|64104|58041";
String [] temp = s.split("|");
for(String p: temp)
System.out.println(p);

但不是在 '|' 处拆分它将每个字符分开。这是我为上述代码得到的输出。

 1
 1
 1
 2
 0
 6
 |
 0
 0
 :
 0
 0
 :
 0
 0
 |
 2
 |
 6
 4
 1
 0
 4
 |
 5
 8
 0
 4
 1

我通过替换“|”找到了转机通过','在行中,但是代码补丁会运行很多次,我想对其进行优化。

 String s = "111206|00:00:00|2|64104|58041";
 s = s.replace('|', ',');

我只想知道'|'有什么问题??

【问题讨论】:

标签: java string string-split


【解决方案1】:

你必须使用:

String [] temp = s.split("\\|");

这是因为split 方法采用正则表达式,而| 是特殊字符之一。它的意思是“或”。这意味着您将按'' or '' 拆分,即''。因此它将在每个字符之间拆分。

您需要两个斜杠,因为第一个用于转义 字符串 中的实际\,因为\ 是Java 在字符串中的转义字符。 Java 将字符串理解为“\|”,然后正则表达式将其理解为“|”。

【讨论】:

  • @jahroy FGITW :)
  • 完美、最好、最简单的方法。
  • 我看到这个问题 7 分钟太晚了 ;-( 干得好 GoldenDoorknob!
  • 这是一个意外的行为!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 2011-09-12
  • 2020-03-07
相关资源
最近更新 更多