21
Сен
2017

Выход за пределы массива Java StringIndexOutOfBoundsException

Задача состоит в том, чтобы найти и напечатать подстроку наибольшей длины из одинаковых символов. Выдает ошибку, не могу понять, почему происходит выход за пределы массива во втором цикле. Код::

import java.io.*;
import java.util.ArrayList;
import java.lang.String;
import java.util.Scanner;
import java.util.Arrays;

public class Solution {
    public void Substring() {
        System.out.println("Enter string");
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        ArrayList<String> arr = new ArrayList<>(Arrays.asList(str.split(" ")));
        for (int i = 0; i < arr.size(); i++) {
            {
                int number = arr.get(i).length();
                for (int q = 0; q < arr.get(i).length(); q++) {
                    if (arr.get(i).charAt(q) == arr.get(i).charAt(q + 1)) {
                        q++;
                        if (q == number - 1) {
                            System.out.println(arr.get(i));
                        }
                    } else {
                        i++;
                    }
                }
            }

        }
    }
}

Источник: https://ru.stackoverflow.com/questions/721364/%D0%92%D1%8B%D1%85%D0%BE%D0%B4-%D0%B7%D0%B0-%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8B-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0-java-stringindexoutofboundsexception

Share

Тебе может это понравится...