【问题标题】:Split on string giving false result [duplicate]拆分字符串给出错误结果[重复]
【发布时间】:2016-02-10 07:53:59
【问题描述】:

我有一个字符串跟随

String caret= "Y^LEAD_PROJECT_V.vw^View LEAD_PROJECT_V.vw^INF^View^Extension^RECOMPILE^Unit Test^Recompile - Test ^Test View PROJECT_V.vw^^SIMPLE^^^^^^^";

我想用^ 分割这个字符串。所以我用下面的代码来拆分它

String[] split = caret.split("\\^");
System.out.println(split.length);

split.length 获得:

12

split.length 必填:

19 // as there are 18 caret symbols in the string

我不明白我做错了什么。无论我使用什么正则表达式,我都会得到相同的结果。我也无法修改字符串caret

谁能帮我把19 作为数组长度。

【问题讨论】:

  • Split 不保留空字符串。请参阅this answer 以保留空字符串。
  • @usandfriends 现在可以了。谢谢你的链接。

标签: java string split


【解决方案1】:

尝试像这样使用"\\^",-1

  String[] split = caret.split("\\^",-1);

使用-1,您可以包含空字符串,输出=19
有关更多信息,请查看此link

【讨论】:

  • 你能解释一下-1是什么意思吗?
  • 谢谢。它按预期工作。 :)
猜你喜欢
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多