2011-03-22 4 views
2

Disons que j'ai un tableau défini dans Groovy comme celui-ciComment faire pour convertir un tableau en int dans groovy?

def int[] a = [1,9] 

Maintenant, je veux convertir ce tableau dans une variable int dire a1 telle que a1 a la valeur (qui sont les valeurs de tableau dans le a) un moyen de le faire?

+0

Je ne sais pas groovy, mais comment entreposez-vous 09 'dans un int? –

Répondre

2

1) vous n'avez pas besoin def:

int[] a = [0,9] 

2) Que voulez-vous dire par 09? N'est-ce pas 9? Comment voyez-vous ce codage fonctionner?

Si vous voulez dire que vous voulez simplement concaténer les nombres ensemble, alors;

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

Ensuite, vous pouvez faire quelque chose comme:

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

qui convertit chaque élément dans une chaîne, les rejoint tous ensemble, et analyse ensuite la chaîne résultante dans un int

+0

cette valeur est 9 seulement, juste pour montrer que les deux valeurs doivent être placées dans la variable. Dites si int [] a = [1,9] alors je dois obtenir comme 19. –

+0

cela semble facile à lire et aussi l'explication de soi :) merci encore une fois :) –

1
def sb = new StringBuilder() 
[0,9].each{ 
    sb.append(it) 
} 
assert sb.toString() == "09" 
6

J'y vais pour:

[1, 2, 3, 4].inject(0) { a, h -> a * 10 + h } 
+1

secondes diff =) – jpertino

+1

+1 belle utilisation de l'injection :-) –

1

Sur la base de vos commentaires sur d'autres réponses, cela devrait vous y aller:

def a = [ 0, 9, 2 ] 

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

assert a1 == 92 

Comme vous pouvez le voir les autres réponses, il y a plusieurs façons d'accomplir ce que vous voulez. Utilisez simplement celui qui correspond le mieux à votre style de codage.

+0

Merci :) était la même chose que tim_yates :) –

+0

Oui, je vois maintenant. Mais vous n'avez pas besoin de l'appel de la méthode collect. – deluan

+1

Je crois que vous faites si 'a' est un' int [] 'comme dans la question originale ;-) –

0

Vous avez déjà beaucoup d'options, mais pour ajouter à la confusion, voici un autre:

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

// test it 
assert number == 19 
Questions connexes