Инициализировать 2d массив с [длинна == кол-ву уникальных символов в строке] [счеткчик уникальных символов ]

Уже который день бьюсь над данным заданием , но ввиду отсуствия квалификации не могу сформировать верное решение данного задания.Регулярные вырадения юзать нельзя. Мой код:

public static int[][] charEntries(String string) {
       int counter[] = new int[127];

       int l = string.length();

       for (int i = 0; i < l; i++)
           counter[string.charAt(i)]++;
       char array[] = new char[string.length()];
       for (int i = 0; i < l; i++) {
           array[i] = string.charAt(i);
           int flag = 0;
           for (int j = 0; j <= i; j++) {
               if (string.charAt(i) == array[j])
                   flag++; }
           if (flag == 1) {
               int[][]five=new int[string.length()][2];
               five[0][0] = string.charAt(i);
               five[0][1]=counter[string.charAt(i)];
               System.out.println(five[0][0]+"|"+ five[0][1]);
           }

       }
return null;
   }

Ответы (1 шт):

Автор решения: Alexey R.

Насколько я понял задачу, её можно разными способами решить. Скорее всего, тот, кто её задал, ожидает решение определенным способом. Я предлагаю такой:

public int[][] getGrouping(String input){
    String unique = "";

    for(char symbol: input.toCharArray()){
        if(!unique.contains(String.valueOf(symbol))){
            unique = unique + symbol;
        }
    }

    int[][] result = new int[unique.length()][2];

    for(int i = 0; i < result.length ; ++i){
        for(int j = 0; j < 2; j++){
            result[i][j] = -1;
        }
    }

    for(char ch: input.toCharArray()){
        for(int i = 0; i < result.length; i++){
            if(result[i][0] == ch){
                result[i][1]++;
                break;
            }else if(result[i][0] == -1){
                result[i][0] = ch;
                result[i][1] = 1;
                break;
            }
        }
    }
    return result;
}

Используем дополнительную строку для получения списка уникальных символов. Затем создаем массив и инициализируем его не "символьными" значениями. Затем заполняем.

→ Ссылка