Pre*_*exx 32 java string split
我有一个像这样的字符串: 1|"value"|;
我想拆分该字符串并选择|作为分隔符.
我的代码看起来像这样:
String[] separated = line.split("|");
我得到的是一个包含所有字符作为一个条目的数组:
separated[0] = ""
separated[1] = "1"
separated[2] = "|"
separated[3] = """
separated[4] = "v"
separated[5] = "a"
...
有谁知道为什么?
我不能拆分一个字符串|吗?
Tal*_*han 76
|OR在RegEx中被视为一个.所以你需要逃避它:
String[] separated = line.split("\\|");
Kev*_*vin 10
你必须逃避|它,因为它在正则表达式中具有特殊含义.看看这个split(..)方法.
String[] sep = line.split("\\|");
第二个\用于逃避|,第一个\用于逃避第二个\:).
方法的参数是一个正则表达式,您可以在此处split阅读。由于在正则表达式中具有特殊含义,因此您需要对其进行转义。代码如下所示(正如其他人已经展示的那样):|
String[] separated = line.split("\\|");
小智 5
这是行不通的,因为你必须逃离管道 | 第一的。以下示例代码(位于 (http://www.rgagnon.com/javadetails/java-0438.html))显示了一个示例。
public class StringSplit {
  public static void main(String args[]) throws Exception{
    String testString = "Real|How|To";
    // bad
    System.out.println(java.util.Arrays.toString(
        testString.split("|")
    ));
    // output : [, R, e, a, l, |, H, o, w, |, T, o]
    // good
    System.out.println(java.util.Arrays.toString(
      testString.split("\\|")
    ));
    // output : [Real, How, To]
  }
}