Input/Output Buchstaben in Eingabe finden und ausgeben

Solnnis

Mitglied
Hallo zusammen,

für einen einfachen Rechner wird eine Eingabe des Nutzers ermöglicht, dieser gibt Zahlen mit dem Komma getrennt ein und die Zahlen werden anschließend addiert. Soweit funktioniert alles und die Summe der eingegebenen Zahlen wird korrekt berechnet und ausgegeben.

Nun soll jedoch abgefragt werden, ob sich in der Zeichenfolge Buchstaben befinden. Falls ja, so soll der gefundene Buchstabe in einer Fehlermeldung ausgegeben werden ("A" ist keine Zahl)
--> wie kann die Abfrage realisiert werden und vor allem: wie kann ich ermitteln, WELCHER Buchstabe gefunden wurde?

--> habt ihr hierzu Tipps? Sollte das per RegEx gelöst werden?

Danke vorab für alle Anregungen!
 
Hallo. Kommen die Zahlen als String rein? Wenn ja, dann kannst du mit einem RegEx abfragen ob es ein Buchstabe ist bevor du addierst.
 
Ja, sie kommen als String rein --> die Frage ist: Wie genau frage ich das ab und vor allem wie kann ich anschließend ausgeben, welcher Buchstabe genau gefunden wurde
 
Sie kommen als String also hinein. Dann hast du einen String der so ausschaut:

Java:
String eingabe = "1,1,A,1";

Was machst du dann weiter? Wahrscheinlich splittest du es einmal:

Java:
String[] splitted = eingabe.split(',');

So. Nun hast du in jedem Feld eine Zahl hoffentlich drinnen. Jetzt gehst du da einfach drüber mit folgendem:

Java:
int summe = 0;

for(int i = 0; i <splitted.length; i++) {
    try {
    summe += Integer.parseInt(splitted[i]);
   } catch(Exception e) {
    System.out.println(splitted[i] + " ist keine Zahl!");
   }
}

System.out.println("Summe: " + summe);


Wenn du das ausführst, dann sollte folgendes in der Console erscheinen:


Code:
A ist keine Zahl!
Summe: 3
 
Du kannst auch mit regex überprüfen, ob Buchstaben eingegeben wurden. Hier mal ein Test:
Java:
String s = "1, 2, 3, a3, be, 3dc";
Pattern compile = Pattern.compile("([^,\\W\\d]+)");

Matcher m = compile.matcher(s);
while (m.find()) {
   System.out.println(m.group());
}
 

Zurück
Oben