package jmathlib.toolbox.string;
import jmathlib.core.tokens.Token;
import jmathlib.core.tokens.OperandToken;
import jmathlib.core.tokens.numbertokens.*;
import jmathlib.core.functions.ExternalFunction;
import jmathlib.core.tokens.CharToken;
import jmathlib.core.interpreter.*;
/**An external function for returning the length of a string*/
public class strlength extends ExternalFunction
{
/**Calculate the length of the string
@param operands[0] the string to get the length for*/
public OperandToken evaluate(Token[] operands, GlobalValues globals)
{
OperandToken result = null;
if (getNArgIn(operands) !=1)
throwMathLibException("strlength: number of arguments !=1");
if(operands[0] instanceof CharToken)
{
int length = ((CharToken)operands[0]).toString().length();
result = new DoubleNumberToken(length);
}
else
Errors.throwMathLibException(ERR_INVALID_PARAMETER, new Object[] {"CharToken", operands[0].getClass().getName()});
return result;
}
}
/*
@GROUP
char
@SYNTAX
length=STRLENGTH(string)
@DOC
Returns the length of a string.
@NOTES
@EXAMPLES
STRLENGTH("HELLO WORLD") = 11
@SEE
*/