@Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + (null != this.oldChar ? this.oldChar.hashCode() : 0);
        result = 31 * result + (null != this.newChar ? this.newChar.hashCode() : 0);
        return result;
    }
Reference implementation for substring step, a mid-traversal step which returns a string with the specified
characters in the original string replaced with the new characters. Any null arguments will be a no-op and the
original string is returned. Null values are not processed and remain as null when returned. If the incoming
traverser is a non-String value then an {@code IllegalArgumentException} will be thrown.

@author David Bechberger (http://bechberger.com)
@author Yang Xia (http://github.com/xiazcy)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ReplaceGlobalStep.java