[
https://issues.apache.org/jira/browse/TEXT-90?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16049907#comment-16049907
]
ASF GitHub Bot commented on TEXT-90:
------------------------------------
Github user jvz commented on a diff in the pull request:
https://github.com/apache/commons-text/pull/50#discussion_r122104071
--- Diff: src/main/java/org/apache/commons/text/CharacterPredicates.java ---
@@ -48,5 +48,73 @@ public boolean test(int codePoint) {
public boolean test(int codePoint) {
return Character.isDigit(codePoint);
}
- }
+ },
+
+ /**
+ * Tests if the code points represents a number between 0 and 9.
+ *
+ * @since 1.2
+ */
+ ARABIC_NUMERALS {
+ @Override
+ public boolean test(int codePoint) {
+ return codePoint >= ZERO_CODEPOINT && codePoint <=
NINE_CODEPOINT;
+ }
+ },
+
+ /**
+ * Tests if the code points represents a letter between a and z.
+ *
+ * @since 1.2
+ */
+ ASCII_LOWERCASE_LETTERS {
+ @Override
+ public boolean test(int codePoint) {
+ return codePoint >= LOWERCASE_A_CODEPOINT && codePoint <=
LOWERCASE_Z_CODEPOINT;
+ }
+ },
+
+ /**
+ * Tests if the code points represents a letter between A and Z.
+ *
+ * @since 1.2
+ */
+ ASCII_UPPERCASE_LETTERS {
+ @Override
+ public boolean test(int codePoint) {
+ return codePoint >= UPPERCASE_A_CODEPOINT && codePoint <=
UPPERCASE_Z_CODEPOINT;
+ }
+ },
+
+ /**
+ * Tests if the code points represents a letter between a and Z.
+ *
+ * @since 1.2
+ */
+ ASCII_LETTERS {
+ @Override
+ public boolean test(int codePoint) {
+ return ASCII_LOWERCASE_LETTERS.test(codePoint) ||
ASCII_UPPERCASE_LETTERS.test(codePoint);
+ }
+ },
+
+ /**
+ * Tests if the code points represents a letter between a and Z or a
number between 0 and 9.
+ *
+ * @since 1.2
+ */
+ ASCII_ALPHA_NUMERALS {
+ @Override
+ public boolean test(int codePoint) {
+ return ASCII_LOWERCASE_LETTERS.test(codePoint) ||
ASCII_UPPERCASE_LETTERS.test(codePoint)
+ || ARABIC_NUMERALS.test(codePoint);
+ }
+ };
+
+ private static final int NINE_CODEPOINT = 57;
--- End diff --
Wouldn't it make more sense to use an implicit widening on `'9'` to `int`
rather than hardcoded constants?
> Add CharacterPredicates for ASCII letters (uppercase/lowercase) and arabic
> numerals
> -----------------------------------------------------------------------------------
>
> Key: TEXT-90
> URL: https://issues.apache.org/jira/browse/TEXT-90
> Project: Commons Text
> Issue Type: New Feature
> Reporter: Pascal Schumacher
> Assignee: Pascal Schumacher
> Fix For: 1.2
>
>
> I tried to migrate a project from RandomStringUtils to RandomStringGenerator
> today, but I found it hard to replace methods like
> RandomStringUtils#randomAlphanumeric and RandomStringUtils#randomAlphabetic.
> I believe it would ease migration from RandomStringUtils to
> RandomStringGenerator if CharacterPrecidates would offer more predicates.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)