我需要读取文件中的所有字符,然后将它们转换为莫尔斯电码。这是一个简单的部分。但是我不知道如何使扫描仪识别回车然后让打印机打印出回车。这是我转换文件的代码:
public void encodeFile(String inputFilename, String outputFilename) throws Exception {
// Scanner to read in and a printwriter to output what we encode
Scanner in = new Scanner(new File(inputFilename));
PrintWriter output = new PrintWriter(new FileOutputStream(outputFilename));
//loop to run through the file and print out the encoded message
while (in.hasNext()) {
//temp string to hold the next word in the file
String temp = null;
temp = in.next();
//loop to make the magic happen
for (int i = 0; i < temp.length(); i++) {
char m; //temp char to hold the letter to encode
m = temp.charAt(i); //gets the next char, sets temp equal to it
output.print(toCode.get(m)); //prints the encoded string
output.print(" ");
}
//prints a * in place of a space
//output.print("*");
}
//closes the file; as is tradition
output.close();
}
答案 0 :(得分:1)
而不是使用in.hasNext()
,使用in.hasNextLine()
并使用in.nextLine()
启动temp(现在你知道temp是一行,然后是回车)
现在,temp将是一个包含多个空格的字符串,因为我猜你会想要一个|单词之间(莫尔斯电码)。为此,请向toCode()方法添加空格字符,返回“|” (或者你想在文字之间放置的任何东西)
为了打印出来,请使用
output.print("\n");
答案 1 :(得分:-1)
回车符通常是'\ n'字符(在类Unix系统上)或Windows上的“\ r \ n”。
m = temp.charAt(i); //gets the next char, sets temp equal to it
if(m == '\n') {
// Carriage return detected ...
}