由' ['分隔的字符串拆分和']'

时间:2014-04-27 16:30:53

标签: java string parsing split

我有一些写在文件上的样本数据。数据采用以下格式 -

[Peter Jackson] [UK] [United Kingdom] [London]....

我必须提取由'['和']'分隔的信息。所以我找到了 -

Peter Jackson  
UK  
United Kingdom  
London  
...
...

我不太了解字符串拆分。我只知道当它们只用一个字符分隔时如何拆分字符串(例如 - string1-string2-string3 -....)。

5 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

\\[(.+?)\\]

捕获的群组将包含您的内容。

很抱歉没有添加代码。我不懂java

答案 1 :(得分:2)

你应该使用正则表达式。

Pattern p = Pattern.compile("\\[(.*?)\\]");
Matcher results = p.matcher("[Peter Jackson] [UK] [United Kingdom] [London]....");

while (results.find()) {
    System.out.println(results.group(1));
}

答案 2 :(得分:2)

每个项目是否用空格分隔?如果是这样,您可以拆分“\] \ [”然后将所有左侧替换为括号:

    String vals = "[Peter Jackson] [UK] [United Kingdom] [London]";
    String[] list = vals.split("\\] \\[");
    for(String str : list){
        str = str.replaceAll("\\[", "").replaceAll("\\]", "");
        System.out.println(str); 
    }

或者如果你想避免循环,你可以使用子字符串来删除开头和结尾括号,然后用“\\] \\ [”:

分隔
    String vals = " [Peter Jackson] [UK] [United Kingdom] [London] ";
    vals = vals.trim(); //removes beginning whitspace
    vals = vals.substring(1,vals.length()-1); // removes beginning and ending bracket
    String[] list = vals.split("\\] \\[");

答案 3 :(得分:1)

尝试替换

    String str = "[Peter Jackson] [UK] [United Kingdom] [London]";
    str = str.replace("[", "");
    str = str.replace("]", "");

然后你可以尝试拆分它。

答案 4 :(得分:1)

分裂"] ["应该对你进行排序,如:

\] \[

Regular expression visualization

Debuggex Demo

在此之后,只需更换' ['和']'并使用换行符加入。