4 Grundrechenarten auf der Kommandozeile: Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springenK |
|||
Zeile 73: | Zeile 73: | ||
[[Kategorie:Java]] | [[Kategorie:Java]] | ||
[[Kategorie:Java Grundlagen]] | [[Kategorie:Java Grundlagen]] | ||
− | [[Kategorie:Java Codeschnipsel]] | + | [[Kategorie:Java-Codeschnipsel]] |
Version vom 27. Februar 2018, 15:00 Uhr
In diesem Code-Beispiel bauen wir uns einen Rechner für die Kommandozeile.
<code=java> import static java.util.Locale.GERMANY;
/**
* CommandCalc berechnet das Ergebnis einer Rechenoperation mit zwei Operanden. * * @author Gernot Segieth */
public class CommandCalc {
public static void main(String[] args) { if(args.length == 3 && checkArgs(args)) { System.out.print(args[0] +" "+ args[1] +" "+ args[2] +" = "); switch(args[1]) { case "+": System.out.format(GERMANY, "%f%n", addition(parse(args[0]), parse(args[2]))); break; case "-": System.out.format(GERMANY, "%f%n", subtraction(parse(args[0]), parse(args[2]))); break; case "x": System.out.format(GERMANY, "%f%n", multiplication(parse(args[0]), parse(args[2]))); break; case "/": System.out.format(GERMANY, "%f%n", division(parse(args[0]), parse(args[2]))); break; default: System.out.println("Unzulässiger Operator!"); } System.out.println(); } else { System.out.println("CommandCalc, 2015 - Gernot Segieth"); System.out.println("Zulässige Operatoren: + - x /"); System.out.println("Verwendungsbeispiel:\njava CommandCalc 5 + 8"); } }
private static boolean checkArgs(String[] args) { /* * Regex Erklärung: * - die zahl hat optional an erster Stelle ein negatives Vorzeichen * - darauf folgt mindestens eine Ziffer * - optional: (die Zahl darf einen Punkt oder Komma enthalten * - nach dem Punkt oder Komma endet die Zahl mit mindestens einer weiteren Ziffer) */ String pattern = "^[-]?\\d+([.,]\\d+)?$"; return args[0].matches(pattern) && args[2].matches(pattern); }
private static double parse(String arg) { return Double.parseDouble(arg.replace(',', '.')); }
private static double addition(double arg1, double arg2) { return arg1 + arg2; }
private static double subtraction(double arg1, double arg2) { return arg1 - arg2; }
private static double multiplication(double arg1, double arg2) { return arg1 * arg2; }
private static double division(double arg1, double arg2) { return arg1 / arg2; }
} </code=java>