有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当我到达字符串中的某个字符时,如何打印LN?

所以本质上我是从一个txt文件中读取,然后将一个加密副本写入一个新文件。教授说在每一行的末尾加一个0,这样你的程序就知道那是那一行的结尾。例如

气候变化

灾难

问题是,无论我对代码做了什么调整,我都无法打印额外的行,所以我复制的加密版本都打印在一条很长的行上。我的代码如下

            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();

当我在谷歌上搜索时,我在网上找到了一个isDigit方法,它返回一个布尔值,这个布尔值应该返回true,因为末尾有一个0。我尝试在if/else语句中使用这个方法,还尝试使用常规系统。出来println(),我认为这不起作用,因为我正在使用PrintWriter将我的东西写入新文件。我还应该注意,我正在“加密”的东西都是大写的。也就是说,当我把我的加密信件转换成数字时,会得到它们的数字


共 (1) 个答案

  1. # 1 楼答案

    这就是你要找的吗

    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();
    }