Java。大写、加句号
Java. Capitalizing, adding period
正在处理这个菜鸟任务,需要帮助。
此代码必须:
将第一个单词的第一个字母大写。
在句子末尾添加句点 (.)。
将单词连接成一个完整的字符串,并带有空格。
不要对文字进行其他操作。
以下是此代码应执行的操作的示例:
输入 "i", "am", "super", "HERO ”
输出我是超级英雄。
当时我是这么想的:
import java.util.StringJoiner;
import java.lang.String;
public class My {
public static void main(String[] args) {
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
//StringBuffer sb = new StringBuffer(".");
for (String s : arr) {
sj.add(s);
}
sj.append(".");
sj.capitalize();
System.out.println(sj);
}
但在“append”和“capitalize”处捕获错误 - 无法解析方法。请帮忙。
一个带有 StringBuilder 的小示例,您可以在此处查看 https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html,它具有追加方法。
单词大写可以查看How to capitalize the first character of each word in a string
例子
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringBuilder sb = new StringBuilder();
for (String word : arr){
sb.append(WordUtils.capitalize(word));
}
sb.toString();
说明
A StringJoiner
不提供方法 append
和 capitalize
,因此您会收到错误消息。检查 documentation.
应该在sj.toString()
的结果上加上.
,即String result = sj.toString() + ".";
。第一个单词 s
必须大写,而不是 StringJoiner
.
解决方案
这是一个将所有内容放在一起的工作片段:
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
// Capitalize first word
sj.add(Character.toUpperCase(arr[0].charAt(0)) + arr[0].substring(1));
// Add the remaining words
for (int i = 1; i < arr.length; i++) {
sj.add(arr[i]);
}
String result = sj.toString() + ".";
System.out.println(result);
请注意,您可能需要检查 arr
中根本没有单词的边缘情况,即它是空的。当前代码将失败。
帮自己一个忙,将大写代码打包到一个小的实用方法中:
private static String capitalize(String word) {
return Character.toUpperCase(word.charAt(0)) + word.substring(1);
}
那么代码就是:
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
// Capitalize first word
sj.add(capitalize(arr[0]));
// Add the remaining words
for (int i = 1; i < arr.length; i++) {
sj.add(arr[i]);
}
String result = sj.toString() + ".";
System.out.println(result);
流解决方案
如果你喜欢 Stream-API:
String result = capitalize(arr[0])
+ Arrays.stream(arr).skip(1)
.collect(Collectors.joining(" "))
+ ".";
StringJoiner 后缀
您还可以使用 StringJoiner
后缀添加 "."
:
StringJoiner sj = new StringJoiner(" ", "", ".");
然后它会自动将 "."
添加到末尾,当您执行 toString
.
与 Stream 解决方案类似:
Collectors.joining(" ", "", ".")
没有办法使用 StringJoiner 来完成。
public class My {
public static void main(String[] args) {
String[] arr = new String[]{"i", "am", "super", "HERO"};
arr[0].toUpperCase();
StringJoiner sj = new StringJoiner(" ");
for (String s : arr) {
sj.add(s);
}
sj.append(".");
System.out.println(sj);
}
正在处理这个菜鸟任务,需要帮助。
此代码必须: 将第一个单词的第一个字母大写。 在句子末尾添加句点 (.)。 将单词连接成一个完整的字符串,并带有空格。 不要对文字进行其他操作。
以下是此代码应执行的操作的示例: 输入 "i", "am", "super", "HERO ” 输出我是超级英雄。
当时我是这么想的:
import java.util.StringJoiner;
import java.lang.String;
public class My {
public static void main(String[] args) {
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
//StringBuffer sb = new StringBuffer(".");
for (String s : arr) {
sj.add(s);
}
sj.append(".");
sj.capitalize();
System.out.println(sj);
}
但在“append”和“capitalize”处捕获错误 - 无法解析方法。请帮忙。
一个带有 StringBuilder 的小示例,您可以在此处查看 https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html,它具有追加方法。
单词大写可以查看How to capitalize the first character of each word in a string
例子
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringBuilder sb = new StringBuilder();
for (String word : arr){
sb.append(WordUtils.capitalize(word));
}
sb.toString();
说明
A StringJoiner
不提供方法 append
和 capitalize
,因此您会收到错误消息。检查 documentation.
应该在sj.toString()
的结果上加上.
,即String result = sj.toString() + ".";
。第一个单词 s
必须大写,而不是 StringJoiner
.
解决方案
这是一个将所有内容放在一起的工作片段:
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
// Capitalize first word
sj.add(Character.toUpperCase(arr[0].charAt(0)) + arr[0].substring(1));
// Add the remaining words
for (int i = 1; i < arr.length; i++) {
sj.add(arr[i]);
}
String result = sj.toString() + ".";
System.out.println(result);
请注意,您可能需要检查 arr
中根本没有单词的边缘情况,即它是空的。当前代码将失败。
帮自己一个忙,将大写代码打包到一个小的实用方法中:
private static String capitalize(String word) {
return Character.toUpperCase(word.charAt(0)) + word.substring(1);
}
那么代码就是:
String[] arr = new String[]{"i", "am", "super", "HERO"};
StringJoiner sj = new StringJoiner(" ");
// Capitalize first word
sj.add(capitalize(arr[0]));
// Add the remaining words
for (int i = 1; i < arr.length; i++) {
sj.add(arr[i]);
}
String result = sj.toString() + ".";
System.out.println(result);
流解决方案
如果你喜欢 Stream-API:
String result = capitalize(arr[0])
+ Arrays.stream(arr).skip(1)
.collect(Collectors.joining(" "))
+ ".";
StringJoiner 后缀
您还可以使用 StringJoiner
后缀添加 "."
:
StringJoiner sj = new StringJoiner(" ", "", ".");
然后它会自动将 "."
添加到末尾,当您执行 toString
.
与 Stream 解决方案类似:
Collectors.joining(" ", "", ".")
没有办法使用 StringJoiner 来完成。
public class My {
public static void main(String[] args) {
String[] arr = new String[]{"i", "am", "super", "HERO"};
arr[0].toUpperCase();
StringJoiner sj = new StringJoiner(" ");
for (String s : arr) {
sj.add(s);
}
sj.append(".");
System.out.println(sj);
}