Laden...

String einlesen und ohne bestimmte Zeichen Wieder ausgeben

Erstellt von bababune vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.927 Views
Thema geschlossen
B
bababune Themenstarter:in
10 Beiträge seit 2015
vor 8 Jahren
String einlesen und ohne bestimmte Zeichen Wieder ausgeben

Hallo Leute ich komme bei einer Übungsaufgabe nicht weiter! Vielen Dank schonmal für die Lösungstips!

Hier die Angabe der Aufgabe:

Erstellen Sie ein C#-Programm, das einen rudimentären Test eines einzulesenden Strings hinsichtlich der Gültigkeit für eine Telefonnummer vornimmt und etwaige Strukturierungszeichen aus dem String entfernt. Ein Ergebnisstring mit den Ziffern der Telefonnummer, aber ohne die Strukturierungszeichen soll ausgegeben werden. Es soll gelten:

Eine Telefonnummer besteht nur aus den Ziffern 0-9.
Die Zeichen ‘(‘, ‘)‘, ‘-‘ sind als Strukturierungszeichen erlaubt, werden aber nicht mit in den Ergebnisstring übernommen.
Alle anderen Zeichen führen zu einer Fehlermeldung und dem Abbruch des Programms.

Mögliche Abläufe:
Telefonnummer: (0911)5880-1668
091158801668

Telefonnummer: (0911)A123-456
Fehlerhafte Eingabe


Mein Code im Moment:

  
       
        static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben Sie eine Telefonnummer ein:");
            string nummer = Console.ReadLine();
            bool eingabeok = false;
            string ausgabe;

            foreach (char test in nummer)
            {
                if (test <= 39 && test >= 58) // ASCII-Werte
                {
                    eingabeok = false;
                }
                if (test >= 48 && test <= 57 | test == 40 | test == 41 | test == 45) // ASCII-Werte
                {
                
                    eingabeok = true;
                    ausgabe = nummer;
                    ;
                }

            }
            if (eingabeok == true)
            {
                 
                Console.WriteLine("Nummer: {0} ", ausgabe);
            }
            if (eingabeok == false)
            {
                Console.WriteLine(" Fehlerhafte Eingabe! Bitte versuchen Sie es erneut!");
            }
            Console.ReadLine();
        }
    }
}

Meine Probleme:
1.Wie gebe Ich den String ohne die erlaubten Sonderzeichen ( , ) , - aus?
2. Warum erkennt er mir unten in der If-Schleife die Variable ausgabe nicht? (Use of unassigned variable 'ausgabe' ) steht da aber ich deklarier sie doch oben und in der schleife!

Vielen Dank schonmal

16.806 Beiträge seit 2008
vor 8 Jahren

Zu Punkt 1: einfach Filtern? Sprich in einen zweiten String nur das übergeben, was Deinen Vorgaben entspricht.
Zu Punkt zwei: Compiler Error CS0165
Beachte dazu [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen) (und natürlich einfach Google).

PS: Insgesamt ist die Aufgabe in schätzungsweise 8 ausführlichen Zeilen und sehr geringen Grundlagen zu schaffen.
Damit Du mal eine Hausnummer hast 😉

B
bababune Themenstarter:in
10 Beiträge seit 2015
vor 8 Jahren

Danke erstmal für die Antwort ! Ok Compilermeldungen in Zukunft selbst Googln 😉
Ja ich weiß dass ich noch n blutiger Anfänger bin! T_T
Steh grad aufm Schlauch weil ich net weiß wie ich hier filtern soll!

849 Beiträge seit 2006
vor 8 Jahren

Du gehst doch schon jedes Zeichen einzeln durch.
Wenn das Zeichen gültig ist, fügst Du es einfach einem neuen String hinzu. Dieser ist danach gefiltert.

B
bababune Themenstarter:in
10 Beiträge seit 2015
vor 8 Jahren

Und wie fügt man einzelne Zeichen in nen anderen string?

einfach neuen string anlegen? in der true if schleife unten?

while (  eingabeok == true) 
{
string neu =  test
}

mit so ner schleife? hab heut schon x aufgaben gemacht sorry dass ich mich grad so anstell -.-

5.657 Beiträge seit 2006
vor 8 Jahren

Hi bababune,

deine Frage ließe sich ganz einfach beantworten, indem du mal in die Doku schauen würdest: Grundlegende Zeichenfolgenoperationen in .NET Framework. Da es sich hier um die absoluten Grundlagen zum Umgang mit C# handelt, empfehle ich dir den Artikel [FAQ] Wie finde ich den Einstieg in C#? sowie das OpenBook von Galileo: 🛈

Die Aufgabe des Forums ist es nicht, dir das Aneignen von Grundlagen zu ersetzen oder dir aus der Doku vorzulesen. Daher habe ich den Thread jetzt auch geschlossen. Ohne ein bißchen Eigeninitiative hat es einfach keinen Sinn. Bitte beachte zukünftig unseren [Hinweis] Wie poste ich richtig?, vor allem Punkt 1.1, 4, 4.2 und 6.

Christian

Weeks of programming can save you hours of planning

Thema geschlossen