当前位置: 首页 > 面试题库 >

扫描程序从文件中每隔第二行跳过一次

汪永春
2023-03-14
问题内容

我正在尝试扫描文本文件并将每一行放入arraylist,并在下一行为’*’时停止扫描,但是,我的arraylist存储第二行,我不确定为什么。

Scanner scan = new Scanner(new File("src/p/input2.txt"));
ArrayList<String> words = new ArrayList<String>();

while(scan.hasNextLine()) { 
    if(scan.nextLine().equals("*"))
        break;
    words.add(scan.nextLine());
}

文本文件:

1

dip
lip
mad
map
maple
may
pad
pip
pod
pop
sap
sip
slice
slick
spice
stick
stock
*
spice stock
may pod

我的arraylist中存储了什么:

[Dip, crazy, maple, mat, pod, juice, slice, spice, stock]


问题答案:

您总是会两次阅读该行(除非您收到*

if(scan.nextLine().equals("*")) // read here - "someString"
   break;
words.add(scan.nextLine());  // ignore last read line and read again.

您只阅读一次,然后进行比较。

String value = scan.nextLine();
// check for null / empty here
if (value.equals("*"))
  break;
words.add(value);


 类似资料:
  • 我试图扫描一个文本文件,并将每一行放入arraylist中,当下一行是'*'时停止扫描,然而,我的arraylist每隔第二行存储一次,我不知道为什么。

  • 问题内容: 使用扫描程序对象从文本文件读取时,我希望它跳过文件的第一行。我将如何做到这一点? 问题答案: 只需在while循环之前使用即可。如JavaDoc中所述,这将跳过第一行。 还有关于您的命名的注释。Java语言具有广泛接受的约定。类名总是以大写字母开头,变量名总是以小写字母开头(常量除外,但现在不必担心)。在这里阅读更多。

  • 这是我程序的主要方法。当调用nextLine()函数时,扫描器解析变量L而不是space时,我遇到了一个问题。不过,nextInt()可以按照预期工作。我的程序在试图用integer.parseint()函数解析空字符串时崩溃了。 第一个输入是指定将要进行的行数的整数,下面的输入是空格分隔的整数。 堆栈跟踪如下:

  • 问题内容: 我正在使用嵌套循环从字符串行(从文本文件)中提取数字,如下所示: 问题在于此代码将跳过所有空格,但是我也需要使用这些“空格”。那么可以返回空格还是我需要使用其他东西? 我的文本文件可能包含以下内容: 这些空白行各包含1条,这就是我需要返回的行。 问题答案: 使用扫描仪和方法,您将找到解决方案,因为这将使您能够捕获空白行或空白行。

  • 这是我使用的代码: 但当它到达这一点时,它只会说“创建一个名称”。和“创建密码”。两个都在同一时间,然后我必须打一些东西。所以它基本上跳过了需要键入字符串的扫描器部分。在“创建名称”之后。和“创建密码”。然后输入,名称和密码都改为我输入的内容。我怎么解决这个? 这是全班学生。我只是在测试,所以它实际上不是一个程序: 抱歉我语法不好。我不是英国人,所以我很难解释。

  • 我正在尝试将XBee输出的段分组到一个变量中,该变量将它们连接起来。我正在使用Processing来编码和编译。我遇到的问题是输出(println)每隔一个字节就跳过一次(也许这是错误的术语)。因此i=4到11的XBee输出应该如下所示: 0,19,162,0,64,121,230,206(这是由十六进制转换的XBee地址)。