不止一种IndexOf的可能性

时间:2013-05-01 15:33:49

标签: java substring indexof

我正在寻找一种解析子字符串的方法,该子字符串包含一些可能使用的终止字符。我应该使用不同的方法还是有办法使用正则表达式来整理字符?

我目前的代码使用:

smallstring = bigstring.substring(bigstring.indexOf("starthere"), bigstring.indexOf("endhere"));

最后一个索引可以是“]”或“;”我需要解析器能够检测到并终止子串。

4 个答案:

答案 0 :(得分:0)

使用String的{​​{3}}方法,这是该工作的正确工具:

String[] data = "a,b.c;d".split("[,.;]");

在上面的示例中,可以使用单个正则表达式拆分使用三个不同分隔符(,.;)的字符串。最终结果String[]名为data,将包含由分隔符分隔的所有字符串:

[a, b, c, d]

答案 1 :(得分:0)

要检测结束索引,您可以编写

int endIndex = Math.min(bigstring.indexOf("]"), bigstring.indexOf(";"));
if(endIndex == -1) { endIndex = bigstring.length(); }
String smallString = bigstring.substring(startIndex, endIndex);

答案 2 :(得分:0)

试试这个

String smallstring = bigstring.replaceAll(".*starthere(.*)endhere.*", "$1");

答案 3 :(得分:0)

使用正则表达式。 在这里你可以测试它 http://ocpsoft.org/tutorials/regular-expressions/java-visual-regex-tester/