We kann ich in Java ein Symbole und zahlen einzeln auslesen und wiedergeben?
Nehmen wir mal an im Scanner wurde 5&7 eingegeben (so zusammengeschrieben) und ich würde jetzt gerne die 5 als einzelne Zahl das & als Symbol und die 7 wieder als Zahl haben, doch genau dasselbe mit z.B. 12&345. Also das die 12 (zusammengeschrieben) als einzelne Zahl, das Symbol wieder einzeln und die 345 (zusammengeschrieben) als einzelne Zahl ist und ich das einzeln wiedergeben kann. Indem ich z.B. schreibe sout und dann zahlen1 oder so.
Hat ihr da einen Tipp oder einen Code den ich benutzen könnte oder was was ich googlen kann aber auch so das ich das verstehe und nicht nur 1 zu 1 kopiere.
Lg
2 Antworten
Solange die Ausdrücke immer diesem Schema folgen und nicht komplizierter werden, kannst du dir mit String.split() helfen. Das zerlegt dir den String erstmal in Teile, die du dann entsprechend behandeln kannst - um aus dem jeweiligen String z.B. eine Gleitkommazahl zu machen, etwa mit Double.parseDouble().
In deinem Fall wirst du mit einem Boundary Matcher gut bedient sein. Beispiel:
jshell> "15&18".split("\\b")
$1 ==> String[3] { "15", "&", "18" }
Viel Erfolg.
Eine etwas mühsamere Variante, die aber lehrreich ist: du durchsuchst den String Zeichen für Zeichen und zerlegst ihn so schrittweise. Oder du suchst erst mit String.indexOf() nach den Symbolen. Es gibt viele Möglichkeiten.
Du könntest dich am Vorgehen eines Parsers orientieren, entweder RegEx verwenden oder einen Parser-Generator.
Oder du schaust, was dir die Standardbibliothek so hergibt, wenn ich mich nicht irre kannst du mit diversen Methoden den Typ deines Inputs prüfen und passend in Token zerlegen.