Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: utf-8
Méret: 1 KB
Vector<Token> tokens = new Vector<Token>(50);
char ch;
for( int i=0; i<expr.length(); i++ )
{
ch = expr.charAt(i);
if( ch >= '0' && ch <= '9' ) {
StringBuffer sb = new StringBuffer();
while( (ch >= '0' && ch <='9') || (ch == '.') )
{
sb.append(ch);
i++;
if( i == expr.length() ) {
break;
}
ch = expr.charAt(i);
}
i--;
tokens.add(new Number(sb.toString()));
} else if( ch == '(' ) {
tokens.add(new Parenthesis(true));
} else if( ch == ')' ) {
tokens.add(new Parenthesis(false));
} else if( ch == '+' || ch == '-') {
Token token = null;
try {
token = tokens.lastElement();
} catch( NoSuchElementException ex ) {}
if( token == null || token instanceof Operator ||
(token instanceof Parenthesis && ((Parenthesis)token).isLeft())) {
tokens.add(new UnaryOperator(ch));
} else {
tokens.add(new BinaryOperator(ch));
}
} else if( ch == '*' || ch == '/' || ch == '^' ) {
tokens.add(new BinaryOperator(ch));
}
else if( ch == ',' ) {
tokens.add(new FunctionSeparator());
} else {
int j = expr.indexOf('(', i);
String func = expr.substring(i, j);
if( Function.isFunction(func) ) {
tokens.add(new Function(func));
}
i = j-1;
}
}