gpt4 book ai didi

Java:扫描仪未扫描完整行

转载 作者:行者123 更新时间:2023-12-01 19:01:05 24 4
gpt4 key购买 nike

我有以下文本文件(不是java文件)

/*START OF CHANGES TO CODE*/
public class method1 {

public static int addTwoNumbers(int one, int two){
return one+two;
}

public static void main (String[] args){
int total = addTwoNumbers(1, 3);
System.out.println(total);
}
}
/*END OF CHANGES TO CODE*/

我正在尝试使用以下代码来读取文件

String editedSection = null;
boolean containSection = false;
Scanner in = new Scanner(new FileReader(directoryToAddFile));
while(in.hasNextLine()) {
if(in.nextLine().contains("/*START OF CHANGES TO CODE*/")) {
containSection = true;
editedSection = in.nextLine().toString();
} else if (containSection == true) {
editedSection = editedSection+in.nextLine().toString();
} else if (in.nextLine().contains("/*END OF CHANGES TO CODE*/")) {
containSection = false;
editedSection = in.nextLine().toString();
}
in.nextLine();
}

所以基本上我想要它做的是读取一个文件,直到看到 /*START OF CHANGES TO CODE*/,然后开始将其后的每一行添加到字符串中,直到达到 /*结束代码的 OD 更改*/。但是当它读取行时,它会忽略某些行和其他行的一部分。有谁知道该怎么做吗?

最佳答案

您在 while 循环中调用 in.nextLine() 很多次。对我来说这听起来真是个糟糕的主意。每次迭代将执行多少次取决于它进入了哪些位......讨厌。

我建议你使用

while(in.hasNextLine()) {
String line = in.nextLine();
// Now use line for the whole of the loop body
}

这样您就不会为了检查目的而阅读它们而意外地跳过行。

关于Java:扫描仪未扫描完整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com