所以基本上我从一个txt文件读入并写入一个新文件加密副本。教授说在每一行的末尾添加一个0,以便你的程序知道那是该行的结尾。一个例子是
THECATCRIES0
THEDOGCRIES0
问题在于,无论我调整到我的代码,我都无法打印出额外的行,因此我复制的加密版本都打印在一个非常长的行上。我的代码如下
for(int n = 0; n < first.length()-1; n+=2) {
String character = first.substring(n, n + 2);
alpha = character.charAt(0);
bravo = character.charAt(1);
firstLetter = (int)(alpha) - 65;
secondLetter = (int)(bravo) - 65;
File newFile = new File("newcopy.txt");
PrintWriter write = new PrintWriter(new FileWriter(newFile, true));
if(secondLetter < 10){
write.print(firstLetter);
write.print(0);
write.print(secondLetter);
if(Character.isDigit(bravo) || Character.isDigit(alpha)){
write.println();
}
} else {
write.print(firstLetter);
write.print(secondLetter);
if(Character.isDigit(bravo)|| Character.isDigit(alpha)){
write.println();
}
}write.close();
当我用Google搜索它时,我在网上找到了一个返回布尔值的isDigit方法,该布尔值应该返回true,因为最后有一个0。我尝试将此方法放在if / else语句中,并且我也尝试使用常规的System.out.println(),我认为这不会起作用,因为我使用PrintWriter将我的东西写入新文件。我还应该注意我正在“加密”的内容是全部大写。这是为了在我将加密字母转换为数字时获取加密字母的数字。
答案 0 :(得分:0)
这是你要找的吗?
try(Stream<String> stream = Files.lines(Paths.get(newFile.toURI()))) {
stream.forEach(s -> {if(s.endsWith("0")) System.out.println(s);});
} catch (IOException e) {
e.printStackTrace();
}