Wie kann ich bei Java, in einer Eingabe das "." (bei Kommazahlen) erkennen?
Moin liebe Community,
ich weis der Fragetitel ist etwas kompliziert :D, deshalb hier eine genauere Erklärung: Ich musste als Hausaufgabe einen Umrechner programmieren. Also einen Rechner, der Meter in Millimeter umrechnet. Ich habe dies mit einem Double wert gemacht, denn ein Meter kann auch durchaus eine Kommazahl sein. Jedoch ist das Problem, dass man bei der Eingabe immer darauf achten muss, ein "." anstatt eines "," zu verwenden. z.B.: 2.7. Sobald man ausversehen doch z.B.: "2,7" eingibt, kommen massenweise Fehlermeldungen. Ich möchte nun einfach, dass wenn man ausversehen ein Komma eingibt, eine Meldung kommt, dass man darauf achten muss, ein Punkt anstatt eines Kommas zu verwenden. Mein Problem ist nur: Ich weiß nicht wie ich das Programm erkennen lasse, dass es ein , anstatt eines Punktes ist. Ich weiß es klingt ein wenig kompliziert :D, aber vlt. versteht es jemand und kann mir weiterhelfen.
3 Antworten
Also wenn du wirklich nur einen Fehler ausgeben lassen willst, kannste mit "contains" prüfen, ob ein bestimmtes Zeichen im String enthalten ist.
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#contains(java.lang.CharSequence)
Bsp.:
public static void main(String[] ARGS){
String test = "2.3";
double testDouble;
if(test.contains(",")){
System.out.println("Bitte einen Punkt zur Trennung nutzen");
}else{
testDouble=Double.parseDouble(test);
}
}
Falls du es direkt ersetzen willst, haste ja schon einen Hinweis von PerfectMuffin ^^
Jedoch ist das Problem, dass man bei der Eingabe immer darauf achten muss, ein "." anstatt eines "," zu verwenden.
Dieses Problem ist leicht zu lösen. So verwendet Dein Programm den Dezimaltrenner, der auf dem System konfiguriert ist:
String input = "3,14159";
NumberFormat nf = NumberFormat.getInstance(
Locale.getDefault() );
double pi = nf.parse(input);
System.out.println("π=" + nf.format(pi));
Und formatierte Ausgabe geht so:
System.out.printf(Locale.getDefault(), "π=%8.5f", pi);
Die passenden Importe und die genaue Dokumentation findest Du selbst.
https://docs.oracle.com/javase/9/docs/api/java/lang/String.html
Siehe Funktionen
charAt
substring
replace