解析字符串中括号之间的数据-Java

时间:2019-07-03 16:21:45

标签: java parsing

我正在尝试从Java []中的String解析数据

String text = "some text [Karan] some text";
  

我想让计算机读取括号内的Karan

我尝试了String.split()方法,但是将它包装到我不想要的数组中。

有没有办法做到这一点。谢谢

3 个答案:

答案 0 :(得分:1)

您可能想结合使用String.substring方法和String.indexOf

以下是使用以下两种方法提取括号[]之间的文本的简短说明:

  1. 使用[方法获取第一个括号String.indexOf字符的索引。 (我们将此值称为start
  2. 使用]方法获取第二个括号String.indexOf字符的索引(我们将此值称为end
  3. 在要从中提取信息的字符串上调用.substring

    text.substring(start+1, end)
    

请注意第一个索引start+1包含的,而end专有的

答案 1 :(得分:1)

您可以像这样使用正则表达式:

String text = "some text [Karan] some [test2] text [test3] [test4] 22[test5]";
Pattern pattern = Pattern.compile("(?<=\\[).*?(?=\\])");
//or use this regex,it works well too
//Pattern pattern = Pattern.compile("(?<=\\[)[^\\[\\]]*(?=\\])");
Matcher matcher = pattern.matcher(text);
while(matcher.find()){
    System.out.println(matcher.group());
}

,结果为Karantest2test3test4test5。 正则表达式对于处理文本很有用。此常规版本的改进版本使用了“正向和负向后视”。感谢Matthieu的建议。

答案 2 :(得分:-1)

然后看起来像这样:

String text = "some text [Karen] some text";
text = text.substring(text.indexOf("[") + 1, text.indexOf("]"));
System.out.println(text);