Java 如何将字符串短语中每个单词的首字母转换为大写?
我搜索可能的方法,首先将短语拆分为单词并收集在数组中。我可以转换每个单词的首字母。但是,我的函数不起作用,并且花费的时间太长 这是我的实现。Java 如何将字符串短语中每个单词的首字母转换为大写?,java,arrays,string,parsing,Java,Arrays,String,Parsing,我搜索可能的方法,首先将短语拆分为单词并收集在数组中。我可以转换每个单词的首字母。但是,我的函数不起作用,并且花费的时间太长 这是我的实现。 public String toUpCase(String phrase) { String[] words = phrase.split(""); String output = ""; for(int i=0; i < words.length; i++) {
public String toUpCase(String phrase)
{
String[] words = phrase.split("");
String output = "";
for(int i=0; i < words.length; i++)
{
while(i != words.length-1){
output += Character.toUpperCase(words[i].charAt(0)) + words[i].substring(1) + " ";
}
output += Character.toUpperCase(words[words.length-1].charAt(0)) + words[words.length-1].substring(1);
}
return output;
publicstringtoupcase(字符串短语)
{
字符串[]单词=短语。拆分(“”);
字符串输出=”;
for(int i=0;i
}
有没有其他解决办法,让我可以正确地拆分我的短语?
谢谢。您可以使用方法。您没有使用空格分隔符拆分单词,而且循环中的逻辑不正确,您需要按照以下步骤操作: (1) 用空格分隔短语,即单词数组 (2) 重复每个单词 (3) 使用
character.toUpperCase
(4) 从索引1中获取剩余的单词
(5) 每个单词的后缀空间
您可以使用内联注释引用以下代码:
public static String toUpCase(String phrase) {
//split the phrase with space
String[] words = phrase.split(" ");
//Use StringBuilder to append the strings
StringBuilder output = new StringBuilder();
//loop the words array
for(int i=0; i < words.length; i++) {
String temp = words[i];
output.append(Character.
toUpperCase(temp.charAt(0))).//convert the first char to uppercase
append(temp.substring(1)).//get the string from index 1
append(" ");//append space for each word
}
return output.toString();//convert stringbuilder to string
}
公共静态字符串toUpCase(字符串短语){
//用空格分隔短语
字符串[]单词=短语。拆分(“”);
//使用StringBuilder附加字符串
StringBuilder输出=新的StringBuilder();
//循环单词数组
for(int i=0;i
我无法理解在最后一个单词后使用空格的意思
因为我们用空格分隔短语,所以单词
数组的元素中不包含空格,所以我们只需再次为每个单词添加空格
另外,在执行字符串操作时,尤其是在循环内部,始终使用
StringBuilder
代码>……谢谢,但是我已经尝试过了,但是我的编译器没有返回结果,导致CPU溢出。你不应该在for循环中有while循环。尤其不是无限的。在循环中,你需要做的就是将单词的第一个字母大写,然后将结果添加到输出中。我永远不知道如何将这些答案的格式设置为x.x,但这些代码是否适合你?如果不是,为什么不呢?是的,但是当它位于数组的最后一个元素上,即短语的最后一个单词时,它会在最后一个单词后面加一个空格。那么,我该如何防止这种情况呢?如果你使用JavaGuy使用的for循环,你可以在append(“”)之前放一个if语句,如果它是循环的最后一次迭代,那么它就会跳过它。这是非常有用的信息,但我无法理解在最后一个单词之后使用空格的想法。你已经用空格对数组进行了拆分,因此您丢失了空间,即数组元素中没有空间,因此您需要为每个单词重新添加空间,清楚吗?用您的问题更新了我的答案,如果有帮助,您可以接受我的答案
class something {
String toUpCase(String phrase) {
String[] words = phrase.split(" ");
StringBuilder output = new StringBuilder();
for (String word : words) {
output.append(Character.toUpperCase(word.charAt(0)))
.append(word.substring(1))
.append(" ");
}
return output.toString();
}
}