【发布时间】:2011-06-11 13:09:40
【问题描述】:
我有一个名为 text 的大型字符串变量。我希望能够检查text 是否包含指定的searchString(例如“test”)并在匹配前后返回所有带有windowSize 字符的子字符串。
例子:
String windowSize = 5;
String text = "this is only a simple test. lorem impsum testing everything.";
String searchString = "test";
因此我想要以下输出:
mple test. lor
ssum testing e
另外,如果能够有不同类型的输出,那就太好了:
仅在之前:
mple
ssum
仅在:
. lor
ing e
解决方案
感谢 Peter Lawrey 和 SubmittedDenied 我得到了答案:
String windowSize = 5;
String text = "this is only a simple test. lorem impsum testing everything.";
String searchString = "test";
int i = -1;
while((i = text.indexOf(searchString, i+1)) > -1) {
System.out.println(text.substring(Math.max(0, i - windowSize), Math.min(i + searchString.length() + windowSize, text.length())));
}
【问题讨论】:
-
你必须使用正则表达式吗? String.indexOf() 会更简单更快。
-
你是对的,没有想到更简单的解决方案。
标签: java regex window substring