Java 我如何用我的代码找到最靠近中间的点(基于所询问的点的数量)

Java 我如何用我的代码找到最靠近中间的点(基于所询问的点的数量),java,Java,所以我有下面的代码,我需要找到离行中间最近的不是“#”的点的数量。因为在这种情况下,我要寻找3个点,我需要找到最靠近中间的3个点,并得到这3个点的起始索引。我需要这3个点彼此相邻。它不能硬编码,以防我需要改变字符串,或者我需要改变我正在寻找的点数 int numOfDots = 3; String line = "...#.#...#"; for (int i =0; i < line.length(); i++) { }

所以我有下面的代码,我需要找到离行中间最近的不是“#”的点的数量。因为在这种情况下,我要寻找3个点,我需要找到最靠近中间的3个点,并得到这3个点的起始索引。我需要这3个点彼此相邻。它不能硬编码,以防我需要改变字符串,或者我需要改变我正在寻找的点数

        int numOfDots = 3;
        String line = "...#.#...#";
        for (int i =0; i < line.length(); i++) {

        }
您可以尝试:

 int numOfDots = 3;
    String line = "...#.#...#";
    String[] arry = line.split("#");

    int middle = arry.length%2==0?arry.length/2:(arry.length/2 +1);

    for (int i=middle,j = middle; i >= 0; i--,j++) {
        if(arry[i].length()==numOfDots) {
            System.out.println("Result Index in arry :" + i);
            break;
        }
        if(j<arry.length&&arry[j].length()==numOfDots) {
            System.out.println("Result Index in arry :" + j);
            break;
        }
    }
int numOfDots=3;
字符串行=“…#.…#…”;
字符串[]arry=line.split(“#”);
int middle=arry.length%2==0?arry.length/2:(arry.length/2+1);
对于(int i=middle,j=middle;i>=0;i--,j++){
if(arry[i].length()==numofots){
System.out.println(“arry中的结果索引:+i”);
打破
}

如果(jIt)需要最靠近中间的点,在这种情况下,它将是点6和它后面的点。开始的点离它更远,它们也从索引0开始,不是2。你能给我一个例子吗?我把它添加到主体中了。我不懂你的例子。你能一步一步地写吗?
 int numOfDots = 3;
    String line = "...#.#...#";
    String[] arry = line.split("#");

    int middle = arry.length%2==0?arry.length/2:(arry.length/2 +1);

    for (int i=middle,j = middle; i >= 0; i--,j++) {
        if(arry[i].length()==numOfDots) {
            System.out.println("Result Index in arry :" + i);
            break;
        }
        if(j<arry.length&&arry[j].length()==numOfDots) {
            System.out.println("Result Index in arry :" + j);
            break;
        }
    }