web-dev-qa-db-fra.com

convertir un tableau de caractères en tableau int #

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

12
Rud Banisterloid

Une autre option, en utilisant Array.ConvertAll et Char.GetNumericValue :

int[] Aint = Array.ConvertAll(A, c => (int)Char.GetNumericValue(c));
26
Rango

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.

7
Douglas

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é.

4
Adam Modlin

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]); 
  }
4
Pratikk

Un peu de Linq devrait faire l'affaire:

int[] Aint = A.Select(c => c - 48).ToArray(); // or c - '0'
2
p.s.w.g

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.

0
Willy David Jr