Skriver en miniräknare med tillhörande gui, har fastnat lite på logiken?
Jag har fastnat på räknedelen, alltså hur man räknar med n antal siffror!
Har hitills lyckats med att ta en sträng ifrån en textarea och delat upp den i en array med matematiska tecken (+ - * /) och en array med BigDecimal tal, sen när jag skall räkna ihop talen så blir det problem?
Håller på att få väldigt ont i huvudet av det här så jag skulle vara jättetacksam om någon kunde hjälpa mig.
Bifogar ett utdrag av koden.
Kod: Markera allt
public static String Calculate (String res) {
Scanner scanner = new Scanner (res);
Scanner scanner2 = new Scanner (res);
int n = res.length();
int LengthOfTokens = 0;
scanner.useDelimiter("[0123456789]");
scanner2.useDelimiter("[+-/*.]");
/* Determines the math symbols and how many symbols */
for (int i = 0; i < n; i++) {
if (scanner.hasNext ()) {
tokens[i] = scanner.next();
LengthOfTokens = LengthOfTokens + tokens[i].length(); // get length of mathsymbols
}
}
/* Determines the numbers to calculate */
for (int i = 0; i < n; i++) {
if (scanner2.hasNextBigDecimal()) {
calc[i] = scanner2.nextBigDecimal();
}
}
/* Det är denna loopen som inte funkar som det är tänkt, snälla hjälp mig, vill kunna plussa ihop n antal tal */
for (int i = 0; i < LengthOfTokens; i++) {
if (tokens[i].equals("+")) {
result = (calc[i].add (calc[i+1])); // calc[i] är en BigDecimal
}
}
res = result.toString();
return res;
}