gpt4 book ai didi

java - 使用 Scanner(System.in) Java 将每个单词大写

转载 作者:行者123 更新时间:2023-12-01 13:44:48 25 4
gpt4 key购买 nike

这段代码应该允许用户输入一个句子,将其更改为小写,然后将每个单词的第一个字母大写。但我无法让扫描仪工作,它什么也打印不出来。有什么建议吗?

public class Capitalize
{
public static void capCase(String theString)
{
String source = theString;
StringBuffer res = new StringBuffer();

char[] chars = theString.toLowerCase().toCharArray();
boolean found = false;
for(int i = 0; i<chars.length; i++)
{
if(!found&& Character.isLetter(chars[i])){
chars[i] = Character.toUpperCase(chars[i]);
found = true;
} else if (Character.isWhitespace(chars[i])){
found = true;
}
}
}

public static void main(String[] args)
{
Scanner scanner=new Scanner(System.in);
System.out.println(scanner.next());
}
}

最佳答案

我看到的问题:

  • 目前的代码只会在用户按下 Enter 键后打印输入的第一个单词
  • 该方法不会返回任何内容,因此它实际上会完成所有工作并丢弃它。

所以我可能会这样做:

为了简洁起见,我将把所有内容放在 main 中

public class Capitalize {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String sentence = Scanner.nextLine();
StringBuilder ans = new StringBuilder(); // result
for(String s : sentence.split(" ")) { // splits the string at spaces and iterates through the words.
char[] str = s.toLowerCase().toCharArray(); // same as in OPs code
if(str.Length>0) // can happen if there are two spaces in a row I believe
str[0]=Character.toUpperCase(str[0]); // make the first character uppercase
ans.Append(str); // add modified word to the result buffer
ans.Append(' '); // add a space
}
System.out.println(ans);
}
}

关于java - 使用 Scanner(System.in) Java 将每个单词大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20438347/

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