public static boolean validUTF16String()

in lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java [259:292]


    public static boolean validUTF16String( char[] s, int size )
    {
        for ( int i = 0; i < size; i++ )
        {
            char ch = s[i];
            if ( ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END )
            {
                if ( i < size - 1 )
                {
                    i++;
                    char nextCH = s[i];
                    if ( nextCH >= UNI_SUR_LOW_START && nextCH <= UNI_SUR_LOW_END )
                    {
                        // Valid surrogate pair
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }
            else if ( ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END )
            {
                // Unmatched low surrogate
                return false;
            }
        }

        return true;
    }