String Array to String без последнего значения индекса

Я работаю со String и String [] в java.

У меня есть одна строка [], и я хотел преобразовать ее в строку, но не хочу, чтобы в ней было последнее значение индекса.

String[] arr = new String[]{"1","2","3","4"};

Мне нужна новая строка только как 123.

Да, я могу выполнить итерацию arr до второго последнего индекса, сохраняя присвоение значения в новой строке. Но есть ли другой способ сделать это более разумным?

@Dhiral Kaniya, я не думаю, что этого можно достичь без итерации массива. Я думаю, вам следует искать наиболее оптимальный способ выполнения итерации. Я лично считаю, что если вы используете Java 8, вы можете использовать Stream API.

Ankur 21.12.2018 07:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
91
2

Ответы 2

попробуй это

    String[] arr = new String[]{"1","2","3","4"};
    String newString = "";

    for (int i = 0; i < arr.length -1 ; i++) {
        newString += arr[i];
    }


    System.out.print(newString);

Вывод

123

Я думаю о трех способах.

Первый использует StringBuilder. Это дает вам полный контроль с минимумом мусора. (Я бы предпочел этот)

public static String convert(String... arr) {
    // in case of arr is really big, then it's better to first
    // calculate required internal buffer size, to exclude array copy
    StringBuilder buf = new StringBuilder();

    for(int i = 0; i < arr.length - 1; i++)
        buf.append(arr[i]);

    return buf.toString();
}

Другой способ - использовать функцию Java8 String.join():

public static String convert(String... arr) {
    return String.join("", arr).substring(0, arr.length - 1);
}

И, наконец, используя Stream:

public static String convert(String... arr) {
    return Arrays.stream(arr, 0, arr.length - 1).collect(Collectors.joining(""));
}

Другие вопросы по теме