J'ai ce tableau
char[] A = ['1', '2', '3', '4']
Et je veux le convertir en int []
int[] Aint=[1, 2, 3, 4]
Des idées?
Je viens de commencer la programmation
Merci
Une autre option, en utilisant Array.ConvertAll
et Char.GetNumericValue
:
int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));
Pour obtenir la valeur numérique d'un caractère numérique (de '0'
à '9'
), vous pouvez simplement soustraire le point de code de '0'
de son propre.
int[] Aint = A.Select(a => a - '0').ToArray();
Les caractères numériques se voient attribuer des points de code consécutifs. '0'
a un point de code 48
; '1'
a un point de code 49
; et ainsi de suite jusqu'au '9'
, qui a le codepoint 57
. Ainsi, lorsque vous soustrayez deux caractères numériques, vous obtiendrez le même résultat que si vous soustrayiez leurs valeurs numériques. Soustraire '0'
à n’importe quel chiffre vous donnerait la valeur absolue de ce dernier.
Ajoutez une instruction using pour using System.Linq;
, puis procédez comme suit:
int[] Aint = A.Select(i => Int32.Parse(i.ToString())).ToArray();
Vous obtiendrez une exception si un élément dans A
ne peut pas être analysé.
S'il vous plaît faire comme ça
char[] A = ['1', '2', '3', '4'];
int[] Aint = new int[A.Length];
for (int i = 0;i < A.Length;i++)
{
Aint[i] = Convert.toInt32(A[i]);
}
Un peu de Linq devrait faire l'affaire:
int[] Aint = A.Select(c => c - 48).ToArray(); // or c - '0'
Vous pouvez aussi faire ceci:
int[] Aint = A.Select(c => Convert.ToInt32(c.ToString())).ToArray();
Ceci sélectionnera tout le tableau de caractères en tant que chaîne, les convertira en tableau, puis retournera un entier de tableau.