我正在使用Java,我有一个字符串,并希望将大写字母的第一个字母(每个单词以逗号分隔)。
我知道使用WordUtils.capitalize(str)
这是可能的,但我拥有的内容如下。
String str = "companies,user,";
我知道split
和Wordutils
会完成这项工作,但我正在寻找单行代码。
输出外观是一个字符串
Companies, User
^ ^^
Companies,User
^ ^
Companies,user
^ ^
答案 0 :(得分:3)
您可以单行试用以下内容!:
String str = "companies,user,";
str = String.valueOf(str.charAt(0)).toUpperCase() + str.substring(1,str.indexOf(","))+
str.substring(str.indexOf(","),str.indexOf(",") + 1) + String.valueOf(str.charAt(str.indexOf(",") + 1)).toUpperCase() + str.substring(str.indexOf(",") + 2);
答案 1 :(得分:1)
很简单:
String str = "companies,user,";
String strCaps = Character.toUpperCase(str.charAt(0)) + str.substring(1);
编辑:使其成为单行的唯一方法是使其成为方法,并使用该方法,如下所示:
public static void main(String[] args)
{
String str = "companies,user,";
System.out.println(capitaliseEach(str));
}
static String capitaliseEach(String string)
{
StringBuilder sb = new StringBuilder();
String[] split = string.split(",");
for(int i = 0; i < split.length; i++)
{
if(split[i] != null && split[i].length() >= 2)
{
sb.append(Character.toUpperCase(split[i].charAt(0))).append(split[i].substring(0));
}
if((i + 1) < split.length)
{
sb.append(",");
}
}
return sb.toString();
}
答案 2 :(得分:0)
intiCap的可重用方法
public class YarlagaddaSireeshTest{
public static void main(String[] args) {
String FinalStringIs="";
String testNames="Sireesh,Yarlagadda";
String[] name=testNames.split(",");
for(String nameIs :name){
FinalStringIs+=getIntiCapString(nameIs)+","
;
}
System.out.println("Final Result "+ FinalStringIs);
}
public static String getIntiCapString(String param) {
if(param != null && param.length()>0){
char[] charArray = param.toCharArray();
charArray[0] = Character.toUpperCase(charArray[0]);
return new String(charArray);
}else{
return "";
}
}
}
答案 3 :(得分:0)
像clojure这样的功能语言非常适合这种情况。由于clojure是一种jvm语言,因此您可以从java中评估clojure代码。如果你绝望的话,即使是一个班轮:
RT.var("clojure.core", "eval")
.invoke(RT.var("clojure.core", "read-string")
.invoke(
"(clojure.string/join \", \" " +
"(map clojure.string/capitalize " +
"(clojure.string/split \"companies,user,\" #\",\")))"));
普通的clojure版本:
(clojure.string/join
", " (map clojure.string/capitalize
(clojure.string/split "companies,user," #",")))
老实说,你永远不想那样做!但是,既然你正在寻找一个单行,我想这是值得的乐趣。