gpt4 book ai didi

Java toTitleCase 函数

转载 作者:行者123 更新时间:2023-11-30 07:28:11 25 4
gpt4 key购买 nike

我有这个 Java 函数,它应该将字符串 s 转换为首字母大写。它应该向调用者返回 s副本,保留 s

目前,rv 以空字符串结束。谁能告诉我为什么?

private static String titleCase(String s) {
String rv = new String();
StringTokenizer strtok = new StringTokenizer(s);
// handle the potential null error: (should really output a runtime warning here)
if(s == null) return null;
while(strtok.hasMoreTokens()) {
String word = strtok.nextToken();
String firstLetter = word.substring(0,1);
String restOfWord = word.substring(1);
rv.concat(firstLetter.toUpperCase() + restOfWord.toLowerCase());
}
return rv;
}

最佳答案

字符串在 Java 中是不可变的,一旦您将 rv 声明为 ""(= new String()) 它就不会改变,除非您为其分配一个新的字符串。您可以通过以下方式替换 concat 行:

rv = rv.concat(firstLetter.toUpperCase() + restOfWord.toLowerCase());

或者更好的是,使用 StringBuilder 而不是 String(未测试):

StringBuilder rv = new StringBuilder();
// [...]
rv.append(firstLetter.toUpperCase()).append(restOfWord.toLowerCase());
// [...]
return rv.toString();

关于Java toTitleCase 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9302698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com