我正在寻找一种解析子字符串的方法,该子字符串包含一些可能使用的终止字符。我应该使用不同的方法还是有办法使用正则表达式来整理字符?
我目前的代码使用:
smallstring = bigstring.substring(bigstring.indexOf("starthere"), bigstring.indexOf("endhere"));
最后一个索引可以是“]”或“;”我需要解析器能够检测到并终止子串。
答案 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/