查找指定字符串第n次出现的下标

查找指定字符串第n次出现的下标

    /**
     * 根据findStr在data查找第count次出现的下标
     * @param data 字符串标本
     * @param findStr 要查找的字符串
     * @param count 次数
     * @return
     */
    public static int findStrIndex(String data, String findStr, int count) {
        int indexCount = 0;
        int resultIndex = -1;
        int length = findStr.length();
        char[] findCharArray = findStr.toCharArray();
        char[] dataArray = data.toCharArray();
        for (int i = 0; i < dataArray.length; i++) {
            char dataChar = dataArray[i];
            char findChar = findCharArray[0];
            if(findChar == dataChar) {
                String match = "";
                for (int i1 = i; i1 < i+length; i1++) {
                    match += dataArray[i1];
                }
                if(findStr.equals(match)) {
                    indexCount++;
                    if(count == indexCount) {
                        resultIndex = i;
                        break;
                    }
                }
            }
        }
        return resultIndex;
    }

 运行结果:

        String data = "我叫张万森我叫张万森我叫张万森";
        String findStr = "张万森";
        int index = findStrIndex(data, findStr, 3);
        System.out.println(index); // 12

 

posted @ 2022-06-02 14:15  尘世间迷茫的小书童  阅读(240)  评论(0编辑  收藏  举报