预期结果:
MailMessage msg = new MailMessage();
msg.Body = "";
msg.To.Add(...);
msg.To.Add(...);
SmtpClient smtp = new SmtpClient();
smtp.Send(msg);
实际结果:
input = "heLlo wOrLd"
output= "Hello World"
我的代码仅将句子的第一个单词大写:
output= "Hello world"
答案 0 :(得分:2)
如果要使用流,可以执行以下操作:
String output = Arrays.stream(input.split(" "))
.map(word -> word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())
.collect(Collectors.joining(" "));
答案 1 :(得分:1)
这是不言自明的。它只是转换为小写字符串,在空白处分割,然后将每个单词的第一个字符替换为大写形式。
String output = "";
for (String word : input.toLowerCase().split("\\s+")) {
output += word.replaceFirst(".",word.substring(0, 1).toUpperCase()) + " ";
}
System.out.println(output);
或流(但效率不如第一种方法)。它执行完全相同的操作,但调用收集器以通过加入空格重新组装字符串。
String output = Arrays.stream(input.toLowerCase().split("\\s+"))
.map(w -> w.replaceFirst(".",w.substring(0, 1).toUpperCase()))
.collect(Collectors.joining(" "));
System.out.println(output);
答案 2 :(得分:0)
尝试一下:
String input = "heLlo wOrLd";
String a []= input.split(" ");
String output = "";
for (String s:a){
output = output + s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase() + " ";
}
System.out.println(output);
答案 3 :(得分:0)
我想您会尝试其他一些单词句子。该代码对任何输入均有效。
String input = scanner.nextLine();
String[] array = input.split(" "); //separates the input by spaces
String output = "";
for (int i = 0; i < array.length; i++) {
String word = array[i];
String firstLetter = word.substring(0, 1).toUpperCase();
String otherLetters = word.substring(1, word.length()).toLowerCase();
word = firstLetter + otherLetters;
output += word + " ";
}
System.out.println(output);