Merge branch 'master' of https://github.com/nickwongwong/commons-text
diff --git a/src/main/java/org/apache/commons/text/lookup/AbstractStringLookup.java b/src/main/java/org/apache/commons/text/lookup/AbstractStringLookup.java
index e3c44e9..4dbdb65 100644
--- a/src/main/java/org/apache/commons/text/lookup/AbstractStringLookup.java
+++ b/src/main/java/org/apache/commons/text/lookup/AbstractStringLookup.java
@@ -24,8 +24,20 @@
*/
abstract class AbstractStringLookup implements StringLookup {
+
+ /**
+ * The empty string.
+ */
private static final String EMPTY = "";
+
+ /**
+ * The default split char.
+ */
protected static final char SPLIT_CH = ':';
+
+ /**
+ * The default split string.
+ */
protected static final String SPLIT_STR = String.valueOf(SPLIT_CH);
/**
diff --git a/src/main/java/org/apache/commons/text/lookup/ScriptStringLookup.java b/src/main/java/org/apache/commons/text/lookup/ScriptStringLookup.java
index 4705d31..c80e88c 100644
--- a/src/main/java/org/apache/commons/text/lookup/ScriptStringLookup.java
+++ b/src/main/java/org/apache/commons/text/lookup/ScriptStringLookup.java
@@ -78,8 +78,8 @@
final Object eval = scriptEngine.eval(script);
return Objects.toString(eval, null);
} catch (final Exception e) {
- throw IllegalArgumentExceptions.format(e, "Error looking up script engine [%s] for script [%s].", engineName,
- script);
+ throw IllegalArgumentExceptions.format(e, "Error looking up script engine [%s] for script [%s].",
+ engineName, script);
}
}
diff --git a/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java b/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
index 2b6f856..dcf599d 100644
--- a/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
+++ b/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
@@ -67,6 +67,7 @@
* </ul>
*
* @param stringLookupMap
+ * the map of string lookups.
* @since 1.5
*/
public void addDefaultStringLookups(final Map<String, StringLookup> stringLookupMap) {
diff --git a/src/main/java/org/apache/commons/text/lookup/UrlStringLookup.java b/src/main/java/org/apache/commons/text/lookup/UrlStringLookup.java
index 29e894e..1c27736 100644
--- a/src/main/java/org/apache/commons/text/lookup/UrlStringLookup.java
+++ b/src/main/java/org/apache/commons/text/lookup/UrlStringLookup.java
@@ -72,8 +72,9 @@
final String urlStr = substringAfter(key, SPLIT_CH);
try {
final URL url = new URL(urlStr);
- final StringWriter writer = new StringWriter(8192);
- final char[] buffer = new char[8192];
+ final int size = 8192;
+ final StringWriter writer = new StringWriter(size);
+ final char[] buffer = new char[size];
try (InputStreamReader reader = new InputStreamReader(new BufferedInputStream(url.openStream()),
charsetName)) {
int n;
diff --git a/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java b/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
index 1dc2b85..2e88dd2 100644
--- a/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
+++ b/src/main/java/org/apache/commons/text/similarity/JaccardSimilarity.java
@@ -62,27 +62,22 @@
* @return index
*/
private Double calculateJaccardSimilarity(final CharSequence left, final CharSequence right) {
- final Set<String> intersectionSet = new HashSet<>();
- final Set<String> unionSet = new HashSet<>();
- boolean unionFilled = false;
final int leftLength = left.length();
final int rightLength = right.length();
if (leftLength == 0 || rightLength == 0) {
return 0d;
}
-
- for (int leftIndex = 0; leftIndex < leftLength; leftIndex++) {
- unionSet.add(String.valueOf(left.charAt(leftIndex)));
- for (int rightIndex = 0; rightIndex < rightLength; rightIndex++) {
- if (!unionFilled) {
- unionSet.add(String.valueOf(right.charAt(rightIndex)));
- }
- if (left.charAt(leftIndex) == right.charAt(rightIndex)) {
- intersectionSet.add(String.valueOf(left.charAt(leftIndex)));
- }
- }
- unionFilled = true;
+ final Set<Character> leftSet = new HashSet<>();
+ for (int i = 0; i < leftLength; i++) {
+ leftSet.add(left.charAt(i));
}
- return Double.valueOf(intersectionSet.size()) / Double.valueOf(unionSet.size());
+ final Set<Character> rightSet = new HashSet<>();
+ for (int i = 0; i < rightLength; i++) {
+ rightSet.add(right.charAt(i));
+ }
+ final Set<Character> unionSet = new HashSet<>(leftSet);
+ unionSet.addAll(rightSet);
+ final int intersectionSize = leftSet.size() + rightSet.size() - unionSet.size();
+ return 1.0d * intersectionSize / unionSet.size();
}
}
diff --git a/src/test/resources/document.properties b/src/test/resources/document.properties
index f411d5e..2f3bc8c 100644
--- a/src/test/resources/document.properties
+++ b/src/test/resources/document.properties
@@ -13,4 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-mykey = Hello World!
\ No newline at end of file
+mykey = Hello World!