Hallo zusammen
Ich bin ganz neu mit C# unterwegs und wollte ein kleines Konsolentool schreiben, welches mir eingetippte Strings nach Zahlen durchsucht.
Soweit funktioniert das auch, aber wenn er eine Zahl findet, gibt er vor der Zahl dennoch erst den Text "Keine Zahl vorhanden" aus.
Irgendwo scheint ein Problem in der Schleife zu sein und ich stecke wirklich gerade fest und hoffe, es kann mir jemand ein Tipp geben?
Für jegliche Hilfe danke ich bereits im Voraus.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions;
namespace Aufgabe_5 { class Program { static void Main(string[] args) { Console.Write("Input: "); string text1 = (Console.ReadLine()); Console.Write("Output: "); Console.WriteLine(ZahlAusText(text1)); Console.Write("Input: "); string text2 = (Console.ReadLine()); Console.Write("Output: "); Console.WriteLine(ZahlAusText(text2)); Console.Write("Input: "); string text3 = (Console.ReadLine()); Console.Write("Output: "); Console.WriteLine(ZahlAusText(text3)); Console.Write("Input: "); string text4 = (Console.ReadLine()); Console.Write("Output: "); Console.WriteLine(ZahlAusText(text4)); Console.ReadKey(); }
static string ZahlAusText(string eingabe) { int eingabeZahl = 0; eingabe = Regex.Match(eingabe, @"\d+").Value; string[] eingaben = Regex.Split(eingabe, @"\d+"); foreach (string text in eingaben) { if (!String.IsNullOrEmpty(text)) { int zahl = int.Parse(eingabe); eingabeZahl++; } else { Console.WriteLine("Keine Zahl vorhanden"); } } return eingabe; } } } |
Moderiert von Th69: Titel geändert (war: "Probleme mit der if-else Schleife").