有没有一种将字符串转换为标题格式的方法?

126
有没有内置的方法可以将一个字符串转换为标题格式?

7
阅读此问题的每个人:请注意这里得票最高的许多答案并不适用于所有语言。您需要一个具有i18n意识的库进行正确的标题大小写转换,比如ICU4J(请参见Daniel F的答案)。 - sffc
这个回答解决了你的问题吗?如何将字符串中每个单词的首字母大写 - M. Justin
我撤回我的重复问题。这个问题特意不使用标题大小写,即保留每个单词非首字母的大小写,而不是将它们改为大写。例如,aBcD -> "ABcD",而不是"Abcd"。 - M. Justin
22个回答

-2
将任何字符串转换为标题大小写的最简单方法是使用Google的org.apache.commons.lang.WordUtils包。
System.out.println(WordUtils.capitalizeFully("tHis will BE MY EXAMple"));

将会产生这个

这将是我的例子

我不确定为什么它被命名为“capitalizeFully”,实际上该函数并没有完全大写结果,但无论如何,这就是我们需要的工具。


1
它被命名为capitalizeFully,因为它将每个单词都大写,包括标题中应该是小写的单词。http://grammar.about.com/od/tz/g/Title-Case.htm - aij
2
Apache Commons不是由Google拥有。它由Apache软件基金会维护。http://commons.apache.org/ - ATutorMe

-3

抱歉,我是个初学者,所以我的编程习惯很糟糕!

public class TitleCase {

    String title(String sent)
    {   
        sent =sent.trim();
        sent = sent.toLowerCase();
        String[] str1=new String[sent.length()];
        for(int k=0;k<=str1.length-1;k++){
            str1[k]=sent.charAt(k)+"";
    }

        for(int i=0;i<=sent.length()-1;i++){
            if(i==0){
                String s= sent.charAt(i)+"";
                str1[i]=s.toUpperCase();
                }
            if(str1[i].equals(" ")){
                String s= sent.charAt(i+1)+"";
                str1[i+1]=s.toUpperCase();
                }

            System.out.print(str1[i]);
            }

        return "";
        }

    public static void main(String[] args) {
        TitleCase a = new TitleCase();
        System.out.println(a.title("   enter your Statement!"));
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接