Dobrý den, mám problém s kalkulačkou. Vstupní data mají být zadávána do jednoho řádku, mají se vyloučit mezery a provést výpočet, nejspíš po stisku klávesy enter. Příklad může být "jakkoliv" dlouhý, použíté pouze základní operace (+,-,*,/), zatím neřeším žádnou prioritu.
Nějak nemohu přijít na to proč mi to hází chybu ohledně převodu Stringu (vstupu od uživatele). Přikládám radši celý kód, předem díky za jakékoliv poznámky :-).
public class Main {
static Scanner sc = new Scanner(System.in);
static String vstup;
static String[] poleOperatoru;
static String[] poleCisel;
static int vysledek;
public static void main(String[] args) {
System.out.println("Zadejte příklad: ");
vstup = sc.nextLine();
vstup = vstup.replaceAll("[a-z] s","");
poleCisel = vstup.split("[0-9]");
poleOperatoru = vstup.split("[*,/,-,+]");
provedOperaci();
}
private static int provedOperaci()
{
for (int i = 0; i < vstup.length(); i++)
{
int prvniCislo = Integer.parseInt(poleCisel[i]);
int dalsiCislo = Integer.parseInt(poleCisel[i++]);
String operator = poleOperatoru[i];
char[] operatorChar = operator.toCharArray();
switch (operatorChar[i])
{
case '+' : vysledek = prvniCislo + dalsiCislo; break;
case '-' : vysledek = prvniCislo - dalsiCislo; break;
case '*' : vysledek = prvniCislo * dalsiCislo; break;
case '/' : vysledek = prvniCislo / dalsiCislo; break;
}
}
return vysledek;
}
private void zobrazVysledek()
{
System.out.println("Pozadovany vysledek je: " + vysledek);
}
}