我正在设计一个程序,用户输入的字符串具有三个"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"
之间的角色可以改变。
答案 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")