【发布时间】:2023-03-22 03:01:01
【问题描述】:
我有一个包含多个名称的文本文件(我列出了几个名称作为示例):
eden ahbez, American musician
bill bissett, Canadian poet
asha bandele, American writer
danah boyd, American scholar
e e cummings, American poet
mc chris, American rapper
我想将每个单词或名称的每个首字母大写,包括逗号后面的字母。每当我尝试这样做时,输出只显示第一行并丢弃其他行,甚至它没有大写字母。如何从同一个文件中读取,如上所述大写,并将更改保存在同一个文件中?因为在我的情况下,它只是读取第一行。
我使用,例如这段代码来读取文件:
BufferedReader br1 = new BufferedReader(new FileReader("names.txt"));
String phrase = "";
String rline;
while ((rline = br1.readLine()) != null) {
phrase = rline;
char[] line = phrase.toCharArray();
for (r = 0; r < line.length; r++) {
if (line[r] == ' ' && line[r] == ',' && line[r] != '.') {
line[r + 1] = Character.toUpperCase(line[r + 1]);
}
output = Character.toString(line[r]);
System.out.print(output);
}
System.out.println();
}
br1.close();
然后保存更改:
PrintWriter pw1 = new PrintWriter("names.txt");
pw1.println(output);
pw1.close();
有什么建议吗?
【问题讨论】:
-
调试它,你会发现出了什么问题。
-
你每次在循环
output = Character.toString(line[r]);中覆盖输出,所以它只包含1行。 -
问题已通过其他答案的说明得到解决。感谢您的建议。
标签: java capitalize