我得到了代码来删除单词之间的空格,但是无法将其用于大写每个单词的开头。可以找到问题所在。它需要在camelcase中。
原始问题是 - 编写一个Java程序,读取包含未知字符串行的文本文件,将整个文件转换为camelCase,最后将camelCase保存到另一个文本文件中。
package p3;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class CamelCase {
public static void main(String[] args) throws IOException {
String Str = null;
File file = new File("txt.txt");
if(!file.exists()) {
System.out.println("The file does not exist.");
System.exit(0);
}
Scanner filescanner = new Scanner(file);
while (filescanner.hasNext()) {
Str= filescanner.nextLine();
System.out.println(Str);
}
filescanner.close();
char[] characters = Str.toCharArray();
boolean capitalizeWord = true;
for (int i = 0; i < characters.length; i++) {
char c = characters[i];
if (Character.isWhitespace(c)) {
capitalizeWord = true;
}
else if (capitalizeWord) {
capitalizeWord = false;
characters[i] = Character.toUpperCase(c);
}
String capsandnospace = Str.replaceAll("\\s","");
FileWriter fw = new FileWriter("CamelCase.txt");
PrintWriter pw= new PrintWriter("CamelCase.txt");
pw.println(capsandnospace);
pw.close();
}
答案 0 :(得分:0)
此代码
while (filescanner.hasNext()) {
Str= filescanner.nextLine();
System.out.println(Str);
}
循环遍历文件,用当前行替换Str
的内容。
循环结束后,Str
的值将是最后一行的值。
您需要在循环
中转换字符串(以及写入结果文件)