我试图在
Java中查找字符串中所有出现的子字符串.
例如:
搜索“ababsdfasdfhelloasdf”为“asdf”会返回[8,17],因为有2个“asdf”,一个位于8位,一个位于17位.
在“aaaaaa”中搜索“aa”将返回[0,1,2,3,4],因为在位置0,1,2,3和4处存在“aa”.
我试过这个:
public List findSubstrings(String inwords, String inword) {
String copyOfWords = inwords;
List indicesOfWord = new ArrayList();
int currentStartIndex = niwords.indexOf(inword);
int indexat = 0;
System.out.println(currentStartIndex);
while (cthing1 > 0) {
indicesOfWord.add(currentStartIndex+indexat);
System.out.println(currentStartIndex);
System.out.println(indicesOfWord);
indexat += cthing1;
copyOfWords = copyOfWords.substring(cthing1);
System.out.println(copyOfWords);
cthing1 = copyOfWords.indexOf(inword);
}
这个问题可以在Python中解决如下:
indices = [m.start() for m in re.finditer(word, a.lower())]
“word”是我正在寻找的单词,“a”是我正在搜索的字符串.
我怎样才能在Java中实现这一目标?