Description
Use CharSequence and not String in the StringUtils API for non-mutating operations.
Anything which has to choose between the mutable and immutable nature of CharSequence subclasses (i.e. takes a String and returns a String), should not be changed. Anything that does not mutate the input (even in spirit) should use CharSequence.
Additionally there should be a unit test that uses reflection to confirm this rule is in place.
Listing remaining methods to move to CharSequence:
public static boolean equalsIgnoreCase(String str1, String str2) {
public static int ordinalIndexOf(String str, String searchStr, int ordinal) {
public static int indexOfIgnoreCase(String str, String searchStr) {
public static int indexOfIgnoreCase(String str, String searchStr, int startPos) {
public static int lastOrdinalIndexOf(String str, String searchStr, int ordinal) {
public static int lastIndexOfIgnoreCase(String str, String searchStr) {
public static int lastIndexOfIgnoreCase(String str, String searchStr, int startPos) {
public static boolean containsIgnoreCase(String str, String searchStr) {
public static int countMatches(String str, String sub) {
public static boolean startsWith(String str, String prefix) {
public static boolean startsWithIgnoreCase(String str, String prefix) {
public static boolean startsWithAny(String string, String... searchStrings) {
public static boolean endsWith(String str, String suffix) {
public static boolean endsWithIgnoreCase(String str, String suffix) {
public static boolean endsWithAny(String string, String... searchStrings) {
Attachments
Issue Links
- is a clone of
-
LANG-510 Convert StringUtils API to take CharSequence
- Closed