-1

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

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

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

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

我想要包含三个的子字符串,但"has"我不能使用 compare 方法,因为我不知道用户将在三个之间输入的字符"has"。那么谁能给我建议我该怎么办?

输出应该是这样的:

"hasiiaahasiihas"为另一个。string1_"hasiaaahasiaaahas"string

在三者之间的性格"has"可以改变。

4

2 回答 2

4

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

Pattern p = Pattern.compile("has.*?has.*?has");
Matcher m = p.matcher(inputString);
while(m.find()) {
    System.out.println(m.group());
}
于 2013-10-11T09:16:17.277 回答
1

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

sr.split("has")
于 2013-10-11T09:10:36.000 回答