我正在尝试从Java []
中的String
解析数据
String text = "some text [Karan] some text";
我想让计算机读取括号内的
Karan
我尝试了String.split()
方法,但是将它包装到我不想要的数组中。
有没有办法做到这一点。谢谢
答案 0 :(得分:1)
您可能想结合使用String.substring
方法和String.indexOf
。
以下是使用以下两种方法提取括号[]
之间的文本的简短说明:
[
方法获取第一个括号String.indexOf
字符的索引。 (我们将此值称为start
)]
方法获取第二个括号String.indexOf
字符的索引(我们将此值称为end
)在要从中提取信息的字符串上调用.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());
}
,结果为Karan
,test2
,test3
,test4
,test5
。
正则表达式对于处理文本很有用。此常规版本的改进版本使用了“正向和负向后视”。感谢Matthieu的建议。
答案 2 :(得分:-1)
然后看起来像这样:
String text = "some text [Karen] some text";
text = text.substring(text.indexOf("[") + 1, text.indexOf("]"));
System.out.println(text);