Java解析错误

Moh*_*sal 3 java parsing

我试图解析字符串:

Portfolio1 [{交易所:纳斯达克 - 代码:INFY-全名:Infosys Technologies Limited(ADR) - 分享数:100.0-百分比收益:388.2258065-头寸成本:1240.0美元 - 今日头寸:-46.9997美元 - 此立场总收益为:4814.0美元 - 此头寸价值:6054.0美元} - {交易所:纳斯达克 - 代码:GOOG-全名:谷歌公司 - 股票数量:10.0%增长:17.98444444-头寸成本为: 4500.0美元 - 今日头寸:-10.70007美元 - 该头寸总收益为:809.3美元 - 此头寸价值:5309.3美元} - {交易所:纳斯达克 - 代码:QCOM-全名:QUALCOMM,Inc.-分享数:0.0%收益:0.0} - ]投资组合2 [{交易所:纳斯达克 - 代码:GOOG-全名:谷歌公司 - 股数:1000.0-百分比收益:32.56679151-持仓成本为:400500.0美元 - 这今日头寸:-1070.007美元 - 该头寸总收益为:130430.0美元 - 此头寸价值:530930.0美元} - {交易所:纳斯达克 - 代号:MSFT-全名:微软公司 - 股数:10.0%收益:-4.03125-仓位成本为:32 0.0 USD-今日头寸为-2.93001美元 - 该头寸总收益为:-12.9美元 - 此头寸价值:307.1美元} - {交易所:纽约证券交易所代码:IBM-全名:国际商业机器公司.-股数:10.0%涨幅:397.80769230000004-持仓成本为:260.0美元 - 今日头寸:-10.30014美元 - 此仓位总收益为:1034.3美元 - 此持仓价值:1294.3美元} - {交易所:纳斯达克 - 代号:NVDA-全名:NVIDIA公司 - 股票数量:100.0-百分比收益:-10.79418345-头寸成本为:1788.0美元 - 今日持仓量:-70.0美元 - 该头寸总收益为:-193.0 USD-此位置值:1595.0 USD} - ]";

用分隔符作为 [

我的代码是

String delims = "[";
String[] tokens = s.split(delims);

for (int i = 0; i < tokens.length; i++)
    System.out.println(tokens[i]);
Run Code Online (Sandbox Code Playgroud)

但它给了我错误

java.util.regex.PatternSyntaxException: Unclosed character class near index 0 [
Run Code Online (Sandbox Code Playgroud)

Rob*_*rco 8

[字符在正则表达式中具有特殊含义.你需要这样做

String delims = "\\["; String[] tokens = s.split(delims);
Run Code Online (Sandbox Code Playgroud)