【问题标题】:Java: split text [duplicate]Java:拆分文本[重复]
【发布时间】:2014-05-02 09:40:18
【问题描述】:

我需要拆分一个文本(String),文本是这样的:

[title],[description blablablablablabla]

有没有办法做到这一点?我需要将括号之间的 2 个文本存储在 String[] 中,用“,”分隔。

【问题讨论】:

标签: java brackets


【解决方案1】:

您可以使用 String 类的split(String str) 方法。示例:

String resultArray[] = stringToSplit.split(",");

【讨论】:

  • 如果[title],[description]"[Hans Brinker, or The Silver Skates],[A colorful portrait of early nineteenth-century Dutch life, as well as a tale of youthful honor.]",这将如何工作?
  • 这正是我的疑问。括号内可以有一个“,”。
【解决方案2】:

是的,很简单,试试这个:

    String text = "[title],[description blablablablablabla]";        
    String[] splitted = text.replaceAll("\\[", "").replaceAll("\\]", "").split(",");

【讨论】:

  • 仅供参考,当替换术语不需要是正则表达式时(如这里),您可以简单地编码text.replace("[", "").replace("]", "").split(",");。或者您可以使用正则表达式,但将两个替换组合成一个调用:text.replaceAll("\\[|\\]", "").split(",");。更少的代码 == 好 :)
【解决方案3】:

分割字符串可以使用这个方法:

public String[] split(String regex, int limit)

或者

public String[] split(String regex)

更多详情请访问http://www.tutorialspoint.com/java/java_string_split.htm

例子:

String a = "Hi guys, what's up?"
String[] b = a.split(",");

【讨论】:

    【解决方案4】:

    您可以使用PatternMatcher

    String input = "[title],[description blablablablablabla]";
    
    Pattern pattern = Pattern.compile("\\[(.*?)\\]");
    Matcher matcher = pattern.matcher(input);
    ArrayList<String> stringList = new ArrayList<String>();
    
    while(matcher.find()) {
        stringList.add(matcher.group(1));
    }
    
    //If you just need the results to be stored in an array of Strings anyway.
    String[] stringArray = stringList.toArray(new String[stringList.size()]); 
    

    【讨论】:

    • 这段代码对我很有帮助!非常感谢!
    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多