递归查找字符串的索引

你好

我正在尝试编写返回一个Array的代码,该数组的元素是我在字符串中寻找的单词(出现次数)的索引:ex)d输入:

String sent = "Hi is Hi is Hi is";
String find = "Hi";

ArrayList<Integer> index = indexFinder(sent,find);
For(int i=0;i<index.size(),i++)
    System.out.println(index.get(i));

输出:

0
6
12

如果Java具有像python ..这样的字符串切片功能,那将非常好,但是由于它没有..我试图使用substring()方法。

import java.util.ArrayList;

public class recursionEx {
ArrayList<Integer> index = new ArrayList<Integer>();
ArrayList<Integer> indexFinder(String sent, String find){
    int pos =0;
    int subPos =0;
    if(sent.contains(find)==false){
        return index;
    }
    else if(sent.contains(find)){
        pos = sent.indexOf(find);
        index.add(pos);
        subPos = pos+find.length();
        return indexFinder(sent.substring(subPos),find);
    }
    return index;
}

public static void main(String[] args) {
    String sent = "Hi is Hi is Hi is";
    String find = "Hi";
    recursionEx r = new recursionEx();
    ArrayList<Integer> g = r.indexFinder(sent, find);
    for(int i=0;i<g.size();i++){
        System.out.println(g.get(i));
    }

}

}

输出是

0
4
4

事后看来,我正在获取每次迭代发送的原始String的子字符串,因此索引Array中的元素是在发送String字符串中找到String的索引,其值为0、4、4。

如何解决此问题以获得所需的输出?任何帮助表示赞赏!

奥康纳(A. Ocannaille)

您不应将子字符串用作参数,而应仅在字符串中开始搜索。这是一种可行的方法,它并不完美,请尝试使其变得更好:

import java.util.ArrayList;

public class recursionEx {
ArrayList<Integer> index = new ArrayList<Integer>();
String string;
recursionEx(String string){this.string = string;}

ArrayList<Integer> indexFinder(int position, String find){
    int pos =0;
    int subPos =0;
    if(string.substring(position).contains(find)==false){
        return index;
    }
    else if(string.substring(position).contains(find)){
        pos = string.substring(position).indexOf(find) + position;
        index.add(pos);
        subPos = pos+find.length();
        return indexFinder(subPos,find);
    }
    return index;
}

public static void main(String[] args) {
    String sent = "Hi is Hi is Hi is";
    String find = "Hi";
    recursionEx r = new recursionEx(sent);
    ArrayList<Integer> g = r.indexFinder(0, find);
    for (Integer pos : g)
        System.out.println(pos);

}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归查找字符串的索引

来自分类Dev

在字符串中递归查找字符

来自分类Dev

使用递归查找字符串中的字符

来自分类Dev

Perl搜索文件递归查找字符串并替换

来自分类Dev

使用递归查找字符串中最长的回文

来自分类Dev

在字符串中查找字符的索引

来自分类Dev

在字符串中查找字符的索引

来自分类Dev

从字符串变量(TSQL)查找字符索引

来自分类Dev

查找字符串中字符的索引位置

来自分类Dev

在列表中查找字符串的索引

来自分类Dev

在列表中查找字符串的索引

来自分类Dev

查找字符串中模式的所有索引?

来自分类Dev

在Python中查找字符串+整数的索引

来自分类Dev

在 .txt 文件中查找字符串索引

来自分类Dev

按索引查找字符串中的单词

来自分类Dev

在字符串数组中查找字符串的索引

来自分类Dev

查找字符串2从字符串1开始的索引

来自分类Dev

从文件中查找字符串和字符串的索引到列表中

来自分类Dev

字符串模式查找字符

来自分类Dev

如何递归地查找字符串中的一组字符?

来自分类Dev

当尝试使用Java中的递归查找字符串的反向字符时出现StackOverflowError

来自分类Dev

正则表达式用于递归查找字符串?

来自分类Dev

查找字符串中字符的最后一个索引

来自分类Dev

在字符串中查找字符的第二个索引?

来自分类Dev

如何从数组中查找字符串的索引(前三个字符)

来自分类Dev

如何在PHP字符串中使用索引查找字符?

来自分类Dev

在PHP中查找字符串

来自分类Dev

在文件中查找字符串

来自分类Dev

查找字符串匹配模式