android - 如何在android中将字符串转换为标题大小写?

标签 android string title-case

我搜索了高低,但只能找到对此类问题的间接引用。在开发android应用程序时,如果您有一个用户输入的字符串,您如何将其转换为标题大小写(即,将每个单词的首字母大写)?我宁愿不导入整个库(例如 Apache 的 WordUtils)。

最佳答案

     /**
     * Function to convert string to title case
     * 
     * @param string - Passed string 
     */
    public static String toTitleCase(String string) {

        // Check if String is null
        if (string == null) {
            
            return null;
        }

        boolean whiteSpace = true;
        
        StringBuilder builder = new StringBuilder(string); // String builder to store string
        final int builderLength = builder.length();

        // Loop through builder
        for (int i = 0; i < builderLength; ++i) {

            char c = builder.charAt(i); // Get character at builders position
            
            if (whiteSpace) {
                
                // Check if character is not white space
                if (!Character.isWhitespace(c)) {
                    
                    // Convert to title case and leave whitespace mode.
                    builder.setCharAt(i, Character.toTitleCase(c));
                    whiteSpace = false;
                }
            } else if (Character.isWhitespace(c)) {
                
                whiteSpace = true; // Set character is white space
            
            } else {
            
                builder.setCharAt(i, Character.toLowerCase(c)); // Set character to lowercase
            }
        }

        return builder.toString(); // Return builders text
    }

关于android - 如何在android中将字符串转换为标题大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12387492/

相关文章:

c++ - 至少出现两次的最长子串 : C++ question

java - 向数组添加特殊字符

javascript - 免费编程营挑战 - 标题案例 A 句子

string - 将字符串中单词的首字母大写

android - 为什么 onLayout 和 onSizeChanged 在方向改变时被调用两次?

Android 屏幕方向因设备而异

javascript - 使用具有正则表达式的 javascript 迭代对象内部的对象

java - 大写字母和标题字母之间的区别

Android 允许某些用户从 PlayStore 免费下载我的应用程序

java - ConnectivityManager.TYPE_WIMAX 是什么连接类型?