Подтвердить что ты не робот

Как обрезать пробел из всех элементов массива?

Мне просто интересно, какой лучший способ удалить пустое пространство из всех элементов списка.

Например, если у меня был String [] array = {" String", "Tom Selleck "," Fish "} Как я могу получить все элементы как {"String","Tom Selleck","Fish"}

Спасибо!

4b9b3361

Ответ 1

Попробуйте следующее:

String[] trimmedArray = new String[array.length];
for (int i = 0; i < array.length; i++)
    trimmedArray[i] = array[i].trim();

Теперь trimmedArray содержит те же строки, что и array, но без начальных и конечных пробелов. В качестве альтернативы вы можете написать это для изменения строк в одном массиве:

for (int i = 0; i < array.length; i++)
    array[i] = array[i].trim();

Ответ 2

Другая опция java 8 lambda:

String[] array2 = Arrays.stream(array).map(String::trim).toArray(String[]::new);

И уродливая, но оптимизированная версия без создания нового массива

Arrays.stream(array).map(String::trim).toArray(unused -> array);

Изменен исходный "массив".

Ответ 3

Добавьте в свой путь сборки объявлений commons-lang3-3.1.jar. Используйте нижеприведенный фрагмент кода для обрезки массива String.

String array = {" String", "Tom Selleck "," Fish "};
array = StringUtils.stripAll(array);

Ответ 4

Вы можете просто перебрать элементы в массиве и вызвать array[i].trim() для каждого элемента

Ответ 5

Я знаю, что это действительно старое сообщение, но с Java 1.8 есть более удобный способ обрезать каждую строку в массиве.

Java 8 Решение для выражения Lamda:

List<String> temp = new ArrayList<>(Arrays.asList(yourArray));
temp.forEach(e -> {temp.set((temp.indexOf(e), e.trim()});
yourArray = temp.toArray(new String[temp.size()]);

с этим решением вам не нужно создавать новый массив.
Как в решении Óscar López

Ответ 6

В Java 8, Arrays.parallelSetAll представляется готовым для этой цели:

import java.util.Arrays;

Arrays.parallelSetAll(array, (i) -> array[i].trim());

Это изменит исходный массив на месте, заменив каждый элемент на результат выражения лямбда.

Ответ 7

String val = "hi hello prince";
String arr[] = val.split(" ");

for (int i = 0; i < arr.length; i++)
{   
     System.out.print(arr[i]);
}