OSDN Git Service

Eleven: rebrand step 2: update file contents
[android-x86/packages-apps-Eleven.git] / src / org / lineageos / eleven / format / Capitalize.java
1
2 package org.lineageos.eleven.format;
3
4 import android.text.TextUtils;
5
6 public class Capitalize {
7
8     /* This class is never initiated */
9     public Capitalize() {
10     }
11
12     public static final String capitalize(String str) {
13         return capitalize(str, null);
14     }
15
16     /**
17      * Capitalizes the first character in a string
18      *
19      * @param str The string to capitalize
20      * @param delimiters The delimiters
21      * @return A captitalized string
22      */
23     public static final String capitalize(String str, char... delimiters) {
24         final int delimLen = delimiters == null ? -1 : delimiters.length;
25         if (TextUtils.isEmpty(str) || delimLen == 0) {
26             return str;
27         }
28         final char[] buffer = str.toCharArray();
29         boolean capitalizeNext = true;
30         for (int i = 0; i < buffer.length; i++) {
31             char ch = buffer[i];
32             if (isDelimiter(ch, delimiters)) {
33                 capitalizeNext = true;
34             } else if (capitalizeNext) {
35                 buffer[i] = Character.toTitleCase(ch);
36                 capitalizeNext = false;
37             }
38         }
39         return new String(buffer);
40     }
41
42     /**
43      * Is the character a delimiter.
44      *
45      * @param ch the character to check
46      * @param delimiters the delimiters
47      * @return true if it is a delimiter
48      */
49     private static final boolean isDelimiter(char ch, char[] delimiters) {
50         if (delimiters == null) {
51             return Character.isWhitespace(ch);
52         }
53         for (char delimiter : delimiters) {
54             if (ch == delimiter) {
55                 return true;
56             }
57         }
58         return false;
59     }
60 }