Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
String einlesen und ohne bestimmte Zeichen Wieder ausgeben
bababune
myCSharp.de - Member



Dabei seit:
Beiträge: 11

Themenstarter:

String einlesen und ohne bestimmte Zeichen Wieder ausgeben

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16152

beantworten | zitieren | melden

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 ;-)
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
bababune
myCSharp.de - Member



Dabei seit:
Beiträge: 11

Themenstarter:

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
bababune
myCSharp.de - Member



Dabei seit:
Beiträge: 11

Themenstarter:

beantworten | zitieren | melden

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 -.-
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5989
Herkunft: Leipzig

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers