Package com.singularsys.jep.functions.strings

# Class Substring

java.lang.Object
com.singularsys.jep.functions.PostfixMathCommand
com.singularsys.jep.functions.NaryFunction
com.singularsys.jep.functions.strings.Substring

All Implemented Interfaces:
  `PostfixMathCommandI`, `Serializable`

public class Substring extends NaryFunction
Extract substring of first argument: substring("abcdefg",2,4) -> "cd". Syntax `substring(str,start,[end])`. Second argument is starting index, third argument is optional, if not present return rest of string if present third argument is the ending index, exclusive. Note that the indices are zero-based.

- If `start` is greater than the length of the string an EvaluationException is thrown.
- If `start` is less than zero an EvaluationException is thrown.
- If `end` is less than start an EvaluationException is thrown.
- If `end` is greater than the length of the string an EvaluationException is thrown.
- If `str` is not a string an EvaluationException is thrown.
- If `start` is not a number representing an integer an EvaluationException is thrown.
- If `end` is not a number representing an integer an EvaluationException is thrown.

See Also:
  - `String.substring(int, int)`
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand

  `curNumberOfParameters, description, name, NaN, numberOfParameters`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Substring()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `checkNumberOfParameters(int n)`
  Checks the number of parameters of the function.
  `Object`
  `eval(Object[] args)`
  Evaluate the function

  ### Methods inherited from class com.singularsys.jep.functions.NaryFunction

  `run`

  ### Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand

  `asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, asType, getDescription, getDescription, getDescriptionWithType, getName, getNumberOfParameters, setCurNumberOfParameters, setDescription, setName, toString, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Substring

    public Substring()

- ## Method Details

  - ### checkNumberOfParameters

    public boolean checkNumberOfParameters(int n)
    Description copied from class: `PostfixMathCommand`
    Checks the number of parameters of the function. Functions which set numberOfParameter=-1 should overload this method
    Specified by:
      `checkNumberOfParameters` in interface `PostfixMathCommandI`
    Overrides:
      `checkNumberOfParameters` in class `PostfixMathCommand`
    Parameters:
      `n` - number of parameters function will be called with.
    Returns:
      false if an illegal number of parameters is supplied, true otherwise.

  - ### eval

    public Object eval(Object[] args) throws EvaluationException
    Description copied from class: `NaryFunction`
    Evaluate the function
    Specified by:
      `eval` in class `NaryFunction`
    Parameters:
      `args` - arguments to the function
    Returns:
      value returned by the function
    Throws:
      `EvaluationException` - if the calculation cannot be performed