Страницы

Поиск по вопросам

четверг, 28 ноября 2019 г.

Простой способ объединения массивов строк

#java #массивы #строки


Добрый день!

Мне нужно объединить два массива строкового типа, каким простым способом я могу сделать это?

String[] bothArray(String[] first, String[] second) {
    return ??;
}

    


Ответы

Ответ 1



Если разрешено использовать Java8, то можно воспользоваться классом Stream и лямбдами: import java.util.Arrays; import java.util.stream.Stream; // . . . String[] bothArray(final String[] first, final String[] second) { return Stream.concat(Stream.of(first), Stream.of(second)).toArray(String[]::new); } Компактно, красиво и не требует внешних компонентов.

Ответ 2



С помощью библиотеки Apache Commons: String[] both = (String[])ArrayUtils.addAll(first, second); отсюда Другой вариант public static String[] combine(String[] a, String[] b){ int length = a.length + b.length; String[] result = new String[length]; System.arraycopy(a, 0, result, 0, a.length); System.arraycopy(b, 0, result, a.length, b.length); return result; } источник с примерами Еще один вариант для всех типов. Тут можно не только примитивные типы использовать, а так же объектов public T[] concatenate (T[] a, T[] b) { int aLen = a.length; int bLen = b.length; @SuppressWarnings("unchecked") T[] c = (T[]) Array.newInstance(a.getClass().getComponentType(), aLen+bLen); System.arraycopy(a, 0, c, 0, aLen); System.arraycopy(b, 0, c, aLen, bLen); return c; } источник

Ответ 3



И еще один вариант. (Редко вижу его упоминание) String[] array; StringBuilder newStr = new StringBuilder(); for(String data: array){ newStr.append(data); } return newStr.toString();

Комментариев нет:

Отправить комментарий