Как конвертировать массив в int в Groovy? - PullRequest
2 голосов
/ 22 марта 2011

Допустим, у меня есть массив, определенный в Groovy, как этот

def int[] a = [1,9]

Теперь я хочу преобразовать этот массив в переменную int, скажем a1, такую ​​что a1 имеет значение как 19 (которые являются значениями массива в a), как это сделать?

Ответы [ 5 ]

6 голосов
/ 22 марта 2011

Я бы пошел на:

[1, 2, 3, 4].inject(0) { a, h -> a * 10 + h }
2 голосов
/ 22 марта 2011

1) вам не нужна защита:

int[] a = [0,9]

2) Что вы подразумеваете под 09? Разве это не 9? Как вы видите, как работает эта кодировка?

Если вы имеете в виду, что хотите просто соединить числа вместе, то;

[ 1, 2, 3, 4 ] == 1234

Тогда вы могли бы сделать что-то вроде:

int b = a.collect { "$it" }.join( '' ) as int

, который преобразует каждый элемент в строку, объединяет их все вместе, а затем анализирует результирующую строку в целое число

1 голос
/ 22 марта 2011

Исходя из ваших комментариев к другим ответам, вы должны начать:

def a = [ 0, 9, 2 ]

int a1 = a.join('') as int​

assert a1 == 92

Как видно из других ответов, есть много способов достичь желаемого. Просто используйте тот, который наилучшим образом соответствует вашему стилю кодирования.

1 голос
/ 22 марта 2011
def sb = new StringBuilder()
[0,9].each{
    sb.append(it)
}
assert sb.toString() == "09"
0 голосов
/ 23 марта 2011

У вас уже есть много вариантов, но, чтобы добавить к путанице, вот еще один:

int[] a = [1,9]
Integer number = a.toList().join().toInteger()

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