Android - 编辑我的字符串,所以每个单词都以大写字母开头

时间:2012-01-17 16:39:39

标签: java android text text-formatting

我想知道是否有人可以向我提供一些代码或指向我,这可以解释我如何转换我的字符串,以便每个单词都以大写字母开头。

我还想用斜体字转换另一个字符串。

基本上,我的应用程序正在做的是从几个EditText框中获取数据,然后点击按钮,通过意图将其推送到下一页并连接成1段。因此,我假设我需要在初始页面上编辑我的字符串,并确保它以相同的格式传递。

提前致谢

6 个答案:

答案 0 :(得分:1)

您可以使用Apache StringUtilscapitalize方法将完成工作。

例如:

WordUtils.capitalize("i am FINE") = "I Am FINE"

WordUtils.capitalizeFully("i am FINE") = "I Am Fine"

答案 1 :(得分:1)

这是一个简单的功能

public static String capEachWord(String source){
        String result = "";
        String[] splitString = source.split(" ");
        for(String target : splitString){
            result
                    += Character.toUpperCase(target.charAt(0))
                    + target.substring(1) + " ";
        }
        return result.trim();
    }

答案 2 :(得分:0)

最简单的方法是使用简单的Java内置函数。

尝试类似下面的内容(方法名称可能不完全正确,从头到尾):

String label = Capitalize("this is my test string");    


public String Capitalize(String testString)
{
    String[] brokenString = testString.split(" ");
    String newString = "";

    for(String s : brokenString)
    {
        s.charAt(0) = s.charAt(0).toUpper();
        newString += s + " ";
    }

    return newString;
}

尝试一下,让我知道它是否适合你。

答案 3 :(得分:0)

只需将 android:inputType="textCapWords" 添加到布局xml中的EditText即可。
这将使所有单词以Caps字母开头。

答案 4 :(得分:0)

字符串在Java中是不可变的,String.charAt返回一个值,而不是您可以设置的引用(如在C ++中)。 Pheonixblade9将无法编译。这就是Pheonixblade9建议的,除了它编译。<​​/ p>

public String capitalize(String testString) {
    String[] brokenString = testString.split(" ");
    String newString = "";

    for (String s : brokenString) {
        char[] chars = s.toCharArray();
        chars[0] = Character.toUpperCase(chars[0]);
        newString = newString + new String(chars) + " ";
    }

    //the trim removes trailing whitespace
    return newString.trim();
}

答案 5 :(得分:0)

String source = "hello good old world";
StringBuilder res = new StringBuilder();

String[] strArr = source.split(" ");
for (String str : strArr) {
    char[] stringArray = str.trim().toCharArray();
    stringArray[0] = Character.toUpperCase(stringArray[0]);
    str = new String(stringArray);

    res.append(str).append(" ");
}

System.out.print("Result: " + res.toString().trim());