2015-01-21 11 views

Antwort

15

Sie String.Split verwenden können. Sie können die Zeichen angeben, die Sie verwenden möchten, um die Zeichenfolge in mehrere zu teilen. Wenn Sie keine bieten alle white-spaces als Split-Zeichen angenommen (so new-line, Tab usw.):

string[] tokens = line.Split(); // all spaces, tab- and newline characters are used 

oder, wenn Sie nur Leerzeichen als Trennzeichen verwenden möchten:

string[] tokens = line.Split(' '); 

Wenn Sie wollen sie int analysieren Sie Array.ConvertAll() verwenden können:

int[] numbers = Array.ConvertAll(tokens, int.Parse); // fails if the format is invalid 

wenn Sie, wenn das Format int.TryParse gültig Verwendung ist überprüfen möchten.

+0

Danke:) Viel – tabula

+1

appreciatted Was passiert, wenn der Benutzer ein betritt Wert gefolgt von _zwei Leerzeichen_ und dann ein zweiter Wert? Wird die ConvertAll-Methode das _empty_-Array-Element korrekt ignorieren? Möglicherweise möchten Sie die Überladung verwenden, die die Aufzählung "StringSplitOptions" verwendet und "StringSplitOptions.RemoveEmptyEntries" verwendet. –

+0

@ChrisDunaway: das wäre ein guter Ansatz. Aber vielleicht sind leere Elemente außergewöhnlich und sollten nicht stillschweigend ignoriert werden. Wir wissen es nicht. –

7

Sie können die Linie geteilt String.Split() mit:

var line = Console.ReadLine(); 
var numbers = line.Split(' '); 
foreach(var number in numbers) 
{ 
    int num; 
    if (Int32.TryParse(number, out num)) 
    { 
     // num is your number as integer 
    } 
} 
3

Sie müssen nur die eingegebenen Daten teilen.

string numbersLine = console.ReadLine(); 

string[] numbers = numbersLine.Split(new char[] { ' '}); 

// Convert to int or whatever and use 
4

können Sie verwenden Linq-lesen die Linie dann geteilt und schließlich jedes Element auf ganze Zahlen konvertieren:

int[] numbers = Console 
     .ReadLine() 
     .Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries) 
     .Select(item => int.Parse(item)) 
     .ToArray(); 
Verwandte Themen