Преобразование массива int в массив String - PullRequest
19 голосов
/ 01 сентября 2010

Итак, у меня есть этот «список» целых. Это может быть Vector, int[], List<Integer>, что угодно.

Моя цель - отсортировать целые и получить String[]. Как массив int начинается как в воздухе.

например: Начать с: {5,1,2,11,3} Конец: String[] = {"1","2","3","5","11"}

Есть ли способ сделать это без цикла for? У меня есть цикл for для сбора ints. Я бы предпочел пропустить другой цикл for.

Ответы [ 14 ]

0 голосов
/ 31 мая 2018

Java 8, без петель:

 // Given
int[] array         = {-5, 8, 3, 10, 25};
// When
String[] actual = Arrays.stream(array)
        .sorted()
        .mapToObj(String::valueOf)
        .toArray(String[]::new);
// Then
String[] expected = {"-5", "3", "8", "10", "25"};

assertArrayEquals(expected, actual);
0 голосов
/ 18 сентября 2013

Arrays.sort (НУМС);var stringArray = (nums.toString ()). split (','). map (String);

0 голосов
/ 28 апреля 2012

Почему бы вам просто не привести эти значения к String внутри исходного цикла for, создав массив String, а не массив int?Предполагая, что вы собираете исходное целое число из начальной точки и добавляете к нему каждую итерацию цикла for, следующая процедура представляет собой простую методологию для создания массива String, а не массива int.Если вам нужны массивы как int, так и String с одинаковыми значениями, создайте их в одном и том же цикле for и покончите с этим.

yourInt = someNumber;

for (int a = 0; a < aLimit; a ++) {

String stringName = String.valueOf(yourInt);
StringArrayName[a] = stringName;
yourInt ++;

}

Или, если вам нужно оба:*

Я согласен со всеми остальными.Циклы for просты в создании, практически не требуют выполнения и легко отслеживаются при чтении кода.Элегантность в простоте!

0 голосов
/ 01 сентября 2010

Вы можете использовать Collections.sort(), а затем перебирать список и собирать String.valueOf() каждый элемент.

http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#sort%28java.util.List%29

Для вектора вы сначала получите список с Collections.list(Enumeration e).

Для массива вы бы использовали Arrays.sort() вместо Collections.sort().

http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#sort%28int%5b%5d%29

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...