Re: Argumente einer gegebenen Funktion bekommen
Verfasst: Do, 28.05.2015 16:28
Ich habs jetzt geschafft.
Das Programm tut, was man von ihm erwartet
Mein ursprüngliches Problem (wie bekomme ich die Argumente einer gegebenen Funktion) habe ich mit Stringauswertung gelöst.
Dazu habe ich
die Methoden der Klasse String benutzt http://docs.oracle.com/javase/7/docs/ap ... tring.html
und die Methoden der Klassen java.util.regex.Matcher http://docs.oracle.com/javase/7/docs/ap ... tcher.html
und java.util.regex.Pattern http://docs.oracle.com/javase/7/docs/ap ... ttern.html.
Hier ein Beispiel, mit dem man untersuchen kann, ob es sich bei gegebener Formel um einen Zellverweis handelt:
Wobei "formula" vom Typ String ist.
Hier noch ein Beispiel, mit dem man untersuchen kann, ob es sich bei dem gegebenen Argument einer Formel um eine Konstante (= String/integer/double) handelt. Wobei "argument" vom Typ String ist.
Wobei
Ich bin mir natürlich nicht sicher, ob ich wirklich ALLE Fälle abdecken konnte, aber bis jetzt bin ich noch auf keine Fehler gestoßen....
*dreimal auf Holz klopf*
Danke nochmal an alle Helfer!
Gruß, darka
Das Programm tut, was man von ihm erwartet

Mein ursprüngliches Problem (wie bekomme ich die Argumente einer gegebenen Funktion) habe ich mit Stringauswertung gelöst.
Dazu habe ich
die Methoden der Klasse String benutzt http://docs.oracle.com/javase/7/docs/ap ... tring.html
und die Methoden der Klassen java.util.regex.Matcher http://docs.oracle.com/javase/7/docs/ap ... tcher.html
und java.util.regex.Pattern http://docs.oracle.com/javase/7/docs/ap ... ttern.html.
Hier ein Beispiel, mit dem man untersuchen kann, ob es sich bei gegebener Formel um einen Zellverweis handelt:
Wobei "formula" vom Typ String ist.
Code: Alles auswählen
if( Pattern.matches( "=[A-Z]+[0-9]+" , formula ) ){}
Code: Alles auswählen
if( (argument.charAt(0) == '"') || Pattern.matches("\\-?[0-9]+(\\,[0-9]+)?", argument) ){
//dann ist argument ein String oder integer oder double
//tu, was du tun möchtest
}
Code: Alles auswählen
argument.charAt(0) == '"'
//überprüft ob das erste Zeichen ein = ist. Dann enthielte arguments nämlich einen String
Code: Alles auswählen
Pattern.matches("\\-?[0-9]+(\\,[0-9]+)?", argument)
//überprüft ob die Zeichen, die argument enthält Zahlen sind. Akzeptiert werden negative, positive, integer und double
*dreimal auf Holz klopf*
Danke nochmal an alle Helfer!
Gruß, darka