Ich versuche, einen Ausdruck als String in eine Ganzzahl zu konvertieren. Für Beispiel Wenn "1 + 5 * 5" angegeben wird, sollte die Methode "26" zurückgeben. Ich begann nur das Schreiben von Code für eine Multiplikation zu lösen, aber wenn ich es dort laufen ist keine AusgabeString zu Integer Expressions
public static void operationS(ArrayList<String> m)
{
for (int i=0; i<m.size(); i++)
{
while ((m.get(i)).contains("*"))
{
int x = ((m.get(i)).indexOf("*"));
char A=((m.get(i)).charAt(x-1));
char B= ((m.get(i)).charAt(x+1));
int r= Character.getNumericValue(A)*Character.getNumericValue(B);
String numberAsString = Integer.toString(r);
if(x==1 && (m.get(i)).length()==3)
{
m.set(i, numberAsString);
}
if(x==1 && (m.get(i)).length()>3)
{
String n = numberAsString+((m.get(i)).substring(x+2));
m.set(i, n);
}
else
{
String k= ((m.get(i)).substring(0,x-1))+numberAsString+((m.get(i)).substring(x+2));
}
}
}
for (int u=0;u<m.size();u++)
{
System.out.println (m.get(u));
}
}
Da ich keine Bibliotheken importieren, mein Aktionsplan des String war ersetzt jedes Mal eine Operation abgeschlossen wurde .
Ich plane, die gleiche Schleife zur Verwendung für Addieren, Subtrahieren und Dividieren
Ich bin mir ziemlich sicher, dass Sie eine exakte Kopie heute früher geschrieben ... Bitte nicht exakt die gleichen Fragen Sie umbuchen, ist es entmutigt und sehr verpönt. – Li357
Wie läuft es? – immibis
Bitte forschen Sie etwas über das Parsing von Ausdrücken. Im Grunde müssen Sie die Zeichenfolge von links nach rechts durchgehen, nach _lexemes_ suchen, die die Zahlen und Operatoren im Ausdruck darstellen, und mit ihnen arbeiten, wenn sie auftauchen. Wenn Sie nach Operatoren suchen und versuchen, die Zahlen neben ihnen zu finden, wird das höchstwahrscheinlich zu Trauer führen, wenn Sie Operationen in der falschen Reihenfolge ausführen. – ajb