code: public static IPv6Address fromString(final String string)
      {
          if (string == null)
              throw new IllegalArgumentException("can not parse [null]");
  
          final String withoutIPv4MappedNotation = IPv6AddressHelpers.rewriteIPv4MappedNotation(string);
          final String longNotation = IPv6AddressHelpers.expandShortNotation(withoutIPv4MappedNotation);
  
          final long[] longs = tryParseStringArrayIntoLongArray(string, longNotation);
  
          IPv6AddressHelpers.validateLongs(longs);
  
          return IPv6AddressHelpers.mergeLongArrayIntoIPv6Address(longs);
      }
docs: Create an IPv6 address from its String representation. For example "1234:5678:abcd:0000:9876:3210:ffff:ffff" or "2001::ff" or even
  "::". IPv4-Mapped IPv6 addresses such as "::ffff:123.456.123.456" are also supported.
  
  @param string string representation
  @return IPv6 address