Многомерный массив из строки в java

183
04 июля 2018, 20:40

Есть массив вида

String[] arr = {
    "a (51)", 
    "b (13)",
    "c (55)"
    };

в котором нужно провести сортировку элементов по значениям в скобках. Думала разбить на два списка (name и value), сортировать value, сопоставляя списки и зашла в тупик, больше идей нет. Может кто-нибудь сталкивался с подобной задачей?

Answer 1

Такой способ Вам подходит?

    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class ArraySort {
        private static Pattern pattern = Pattern.compile("(?<number>\\d+)");
        public static void main(String[] args) {
            String[] arr = {
                    "a (51)",
                    "b (13)",
                    "c (55)"
            };
            Arrays.sort(arr, new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    return getValue(o1).compareTo(getValue(o2));
                }
            });
            System.out.println(Arrays.toString(arr));
        }
        private static String getValue(String value) {
            Matcher matcher = pattern.matcher(value);
            if (matcher.find()) {
                return matcher.group("number");
            } else {
                return "";
            }
        }
    }

[b (13), a (51), c (55)]

Answer 2

Разбить на два массива - плохое решение. Лучше иметь один массив объектов, которые инкапсулируют в себе два поля - value и name

READ ALSO
Как убить IntentService

Как убить IntentService

Для примера я создал сервис с таймеромТуда передаю какие-то параметры для сверки

133
В каких случаях использовать ThreadLocal context?

В каких случаях использовать ThreadLocal context?

Студия предлагает использовать private final ThreadLocal context = new ThreadLocal(); вместо private Context context; Это может предотвратить утечку памяти?

199
TelegramApiRequestException при запуске Telegram бота

TelegramApiRequestException при запуске Telegram бота

Пытаюсь создать бота для телеграммКласс Bot:

177
Доступ к конструктору класса только из одного класса в другом пакете

Доступ к конструктору класса только из одного класса в другом пакете

Есть 2 отдельных пакета и в каждом по 1му классу (условно 1c и 2c)

169