Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中两个字符串的串联,第一个字符为大写_Java_String - Fatal编程技术网

java中两个字符串的串联,第一个字符为大写

java中两个字符串的串联,第一个字符为大写,java,string,Java,String,我试图得到两个字符串firstName和lastName,它们完全是大写和字符串,以转换除第一个字符外的所有字符,并连接结果字符串 firstname=“汤姆”; lastName=“哈里斯” 输出为:汤姆·哈里斯 我通过以下行动实现了这一目标: String name = firstName.substring(0,1).toUpperCase() + firstName.substring(1).toLowerCase() + " " + lastName.substring

我试图得到两个字符串firstName和lastName,它们完全是大写和字符串,以转换除第一个字符外的所有字符,并连接结果字符串

firstname=“汤姆”; lastName=“哈里斯”

输出为:汤姆·哈里斯

我通过以下行动实现了这一目标:

String name =
  firstName.substring(0,1).toUpperCase()
  + firstName.substring(1).toLowerCase()
  + " "
  + lastName.substring(0,1).toUpperCase()
  + lastName.substring(1).toLowerCase();

但是还有其他的方法吗?更有效的方法

是的,您可以从以下位置使用方法
WordUtils.capitalizeFully()


由于字符串在Java中是不可变的,因此在进行如此多的连接时,使用StringBuilder更有效,如下所示:

StringBuilder s = new StringBuilder();
String name = s.append(firstName.substring(0,1).toUpperCase())
              .append(firstName.substring(1).toLowerCase())
              .append(" ")
              .append(lastName.substring(0,1).toUpperCase())
              .append(lastName.substring(1).toLowerCase()).toString();
因为这只创建了两个对象:字符串和StringBuilder,而不是像以前那样创建了4个*


*串接字符串文本是在编译时完成的,因此添加
不会创建新对象。

如果在构建字符串时需要多一点控制,可能会有所帮助


根据您的描述,为什么要将第一个字符转换为大写?不这样做将删除两个
字符串
结构。要求不是将all.WordUtils.capitalizeFully大写定义为“将字符串中所有空格分隔的单词转换为大写单词,即每个单词由一个标题字符和一系列小写字符组成。”因此,这确实符合要求。我想将除第一个字符以外的所有字符转换为lowercase@Rakesh,是的,这正是你需要的。看看曼努佐的评论,hmjd是错的,这并不完全正确。在Java 1.5中,编译器使用StringBuilder优化“+”运算符。谢谢你的纠正,我已经在谎言中生活了好几个月了!
StringBuilder s = new StringBuilder();
String name = s.append(firstName.substring(0,1).toUpperCase())
              .append(firstName.substring(1).toLowerCase())
              .append(" ")
              .append(lastName.substring(0,1).toUpperCase())
              .append(lastName.substring(1).toLowerCase()).toString();
Syntaxes.XML_ALIKE.parse("{v:x case='camelizeUpper' delimiter=' '}").append("x", firstName).append("x", lastName).toString();