当前位置: 首页 > 知识库问答 >
问题:

有没有办法避免使用Scanner(Java)来推进一行

通沛
2023-03-14

好的,所以我有一个小问题,扫描器前进了一条额外的线。我有一个文件,其中有许多行包含整数,每行由一个空格分隔。文件中的某个地方有一行没有整数,只有单词“done”。当发现完成时,我们退出循环并打印出小于每行中每个给定整数的最大素数整数(如果整数已经是素数,则不对其进行任何处理)。我们一直这样做,直到“完成”为止。

我的问题:假设文件包含6行,第6行是完成这个词。我的输出将跳过第1、3和5行。它只会返回第2行和第4行的正确值。

下面是我在其中读取值的代码片段:

Scanner in = new Scanner(
                new InputStreamReader(socket.getInputStream()));
        PrintStream out = new PrintStream(socket.getOutputStream());

        while(in.nextLine() != "done"){


            String[] arr = in.nextLine().split(" "); 

现在我感觉到问题是循环中的nextLine调用推进了行,然后nextline.split调用也推进了行。因此,所有奇数行都将丢失。是否有另一种方法可以在不推进行的情况下检查“完成”,或者是否有可能调用命令以某种方式将扫描仪重置回循环的开始?

共有2个答案

颜英博
2023-03-14

我想你在找这个

while(in.hasNextLine()){
    String str  = in.nextLine();
    if(str.trim().equals("done"){
        break;
    }else{
        String[] arr = str.split("\\s+");
        //then do whatever you want to do 

    }
}
祝灼光
2023-03-14

问题是您有2个调用nextLine()尝试这样的操作

String line = in.nextLine();
while (!"done".equals(line)) {
     String[] arr = line.split(" ");

     // Process the line

     if (!in.hasNextLine()) {
         // Error reached end of file without finding done
     }

     line = in.nextLine();
}

另请注意,我修复了您应该使用equals()检查“完成”的问题。

 类似资料:
  • 我有一个PDF文件,里面有海量的xmp元数据,当我用itext7处理它的时候,程序卡在语句查看源代码,发现在Pdffile对象的构造函数中执行了open(null)方法,最后卡在了并且没有避免它的选项,xmp元数据对我来说毫无用处。 有了itextSharp,基于PDF/A上的删除XMP元数据,我可以得到一个没有元数据的pdf文件。 我试图创建PdfReader或PdfDocument的子类,试图

  • 我有一个JPA实体类,它使用关系来检索它的一些字段。有几个针对这个实体的查询只需要返回几个字段,都是从主表返回的。 我希望使用Spring Data JPA Projection接口,在我的存储库上进行查询,以便在不需要的时候自动避免连接到辅助表。在我的测试中,我还没有实现这一点,Hibernate生成的查询总是连接到辅助表,即使辅助表中的所有字段都不在投影上。是否支持这种行为,或者是否有更好的方

  • 问题内容: 有没有办法使用泛型说“此方法返回”? 当然,我想在子类中重写此方法,因此声明应与一起使用。 这是一个例子: 根本不起作用:我收到“类型不匹配:无法从Base转换为T”。如果我强制使用强制转换,则覆盖将失败。 问题答案: 不,无法表达这一点。只需声明该方法即可返回类的类型。Java具有协变返回类型,因此无论如何您都可以重写方法以返回更特定的类型。 如果您想为此添加一些标记,则可以随时引入

  • 我正在寻找一种使用npm脚本来运行tsc的方法——看 tsc—执行watch,但从不调用nodemon,反之亦然。

  • 我有一些用MATLAB进行图像处理的代码。为了运行matlab代码,我们需要购买matlab许可证。但根据我的项目的要求,我必须使用任何开源软件。所以我想我可以把整个代码转换成Java。 用根啤酒是个好主意吗???

  • GeoFire与实时数据库紧密耦合,而地理查询是许多希望迁移到FireStore的应用程序的常见功能依赖项。有没有办法在Firestore环境中复制位置的散列/检索?