Java .split(“|”) 不工作

2022-09-03 03:57:27

我刚刚遇到了一个问题,即字符串的拆分方法不能将字符“|”作为参数。它以某种方式分隔字符串中的每个字符。

法典:

String[] res = "12345|6".split("|");
Log.d("split", Arrays.toString(res));

输出:

split﹕ [, 1, 2, 3, 4, 5, |, 6]

答案 1

在|前使用转义字符如下图所示:

String[] res = "12345|6".split("\\|");

当您处理/拆分以下任何特殊字符(由正则表达式使用)时,需要类似的“转义字符逻辑”:

  • OR 符号 (|)
  • 问号 (?)
  • 星号 (*)
  • 加号 (+)
  • 反斜杠 (\)
  • 句点 (.)
  • 插入记号 (^)
  • 方括号([ 和 ])
  • 美元符号 ($)
  • 与号 (&)

答案 2

|是正则表达式键字符,适用于正则表达式。像这样逃避它:split()\\|