Как обрезать пробел из всех элементов массива?
Мне просто интересно, какой лучший способ удалить пустое пространство из всех элементов списка.
Например, если у меня был String [] array = {" String", "Tom Selleck "," Fish "}
Как я могу получить все элементы как {"String","Tom Selleck","Fish"}
Спасибо!
Ответы
Ответ 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]);
}