我有一個名爲text
的大型字符串變量。我希望能夠檢查text
是否包含指定的searchString
(例如「test」)並在匹配之前和之後返回包含windowSize
字符的所有子字符串。在找到的序列之前和之後獲取帶有n個字符的子字符串
例子:
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()會更簡單快捷。 – 2011-06-11 13:13:13
你是對的,沒有想到更簡單的解決方案 – Alp 2011-06-11 13:23:59