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, java.io.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, name, NaN, numberOfParameters`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Substring()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `checkNumberOfParameters(int n)` Checks the number of parameters of the function.
    `java.lang.Object` | `eval(java.lang.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, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString, toString`

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

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

- - ### Constructor Detail

    - #### Substring

          public Substring()

  - ### Method Detail

    - #### 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 java.lang.Object eval(java.lang.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

Copyright © 2018 Singular Systems http://www.singularsys.com/jep