diff -r c200b4700aeb -r 580bb0b85f63 src/hotspot/share/utilities/stringUtils.cpp --- a/src/hotspot/share/utilities/stringUtils.cpp Sat Feb 24 22:42:37 2018 -0800 +++ b/src/hotspot/share/utilities/stringUtils.cpp Mon Feb 26 09:34:20 2018 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,3 +41,19 @@ return replace_count; } + +double StringUtils::similarity(const char* str1, size_t len1, const char* str2, size_t len2) { + size_t total = len1 + len2; + + size_t hit = 0; + for (size_t i = 0; i < len1 - 1; i++) { + for (size_t j = 0; j < len2 - 1; j++) { + if ((str1[i] == str2[j]) && (str1[i+1] == str2[j+1])) { + ++hit; + break; + } + } + } + + return 2.0 * (double) hit / (double) total; +}