分离字符串模式的子字符串

时间:2013-10-11 09:08:23

标签: java string

我正在设计一个程序,用户输入的字符串具有三个"has"的特定模式,但"has"之间的字符可以更改。例如,用户可以输入"iihasiiaahasiihas""iihasiaaahasiaaahas"等字符串。

我正在使用此代码来分隔包含"has"的子字符串:

    int va= sr.indexOf("has");
    int va2=sr.lastIndexOf("has");
    String s1=sr.substring(va, va2+3);

但我的问题是,如果用户输入的字符串包含一个或两个"has",它也会分隔子字符串。

我想要包含三个"has"的子字符串,我不能使用比较方法,因为我不知道用户将在三个"has"之间输入的字符。所以任何人都可以建议我该怎么做?

输出应该是这样的:

"hasiiaahasiihas"用于string1"hasiaaahasiaaahas"用于另一个string

在三个"has"之间的角色可以改变。

2 个答案:

答案 0 :(得分:4)

使用正则表达式: "has.*?has.*?has"

Pattern p = Pattern.compile("has.*?has.*?has");
Matcher m = p.matcher(inputString);
while(m.find()) {
    System.out.println(m.group());
}

答案 1 :(得分:1)

使用split方法拆分每个单词并获取由关键字'has'分隔的单词数组:

sr.split("has")