ArrayList中的字符串不输出

问题描述 投票:0回答:2

巨魔hahahahaha lkldalsdl asklskdkaslaslk

java string list algorithm system.out
2个回答
2
投票

scan.next()函数获取下一个输入字符串。这就是为什么进程名称为空行的原因,因为名称已由while条件中的下一个函数采用。使用hasNext()检查是否存在下一行,或者获取输入并将其放入字符串变量并将其与单词“ finish”进行比较。

您可以在文档中查看说明:https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()

从文档中引用:“下一个:从此扫描器中查找并返回下一个完整令牌”


1
投票

问题是由于使用next()而不是nextLine()。选中Scanner is skipping nextLine() after using next() or nextFoo()?了解更多信息。

替换

while (!scan.next().equalsIgnoreCase("finish"))

with

while (!scan.nextLine().equalsIgnoreCase("finish"))

此外,最好使用do...while来保证至少执行一次它的主体,即>]

do {

    Process p = new Process();

    String pn = "";
    String bt = "";
    String at = "";
    pn = input.nextLine();
    bt = input.nextLine();
    at = input.nextLine();

    System.out.println("Process name, CPU Burst Time, Arrival time\n ");

    p.process_name = pn;
    p.burstTime = Float.parseFloat(bt);
    p.arrivalTime = Float.parseFloat(at);
    fcfs.add(p);

} while (!scan.nextLine().equalsIgnoreCase("finish"));
© www.soinside.com 2019 - 2024. All rights reserved.