【发布时间】:2020-05-11 14:31:51
【问题描述】:
我想将一个句子转换为一个字符串,其中所有单词都用空格分隔,并且只有第一个单词以大写字母开头。
例如,字符串“StopAndSmellTheRoses”。将被转换为“停下来闻闻玫瑰”。
当我编译它时,为什么它在每个大写单词之间都放了空格?
import java.io.*;
import java.util.Scanner;
public class assignment8 {
public static String editing(String sentences) {
for (int i = 0; i < sentences.length(); i++) {
char c = sentences.charAt(i);
if (Character.isUpperCase(c)) {
sentences.concat(" ");
}
}
return sentences;
}
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("sentence.txt"));
String orignal;
while (input.hasNextLine()) {
orignal = input.nextLine();
System.out.println(orignal);
String edit = editing(orignal);
System.out.println(edit);
}
input.close();
}
}
【问题讨论】:
-
String是不可变的。String.concat不修改字符串 - 它返回一个新字符串,并附加了另一个字符串。您可能会使用sentences = sentences.concat(" "),尽管在多次操作字符串时使用StringBuilder会更有效。