Java 中作为命令行输入的字符串列表(多行)

发布于 2024-11-04 20:44:26 字数 912 浏览 1 评论 0原文

我正在尝试为学校做作业,但我不知道如何处理输入。我在下面提供了有关作业上下文的链接:

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDETZTkxZWQyYjM4OTI1&hl=en

我对如何完成作业要求的一切,但我不确定如何处理输入。

示例输入是:

a0
0
a00
ab000

给出的输出为:

树 1:
无效!
树 2:
高度:-1
路径长度:0
完整:是
邮购:
树 3:
高度:0
路径长度:0
完整:是
后序:a
树 4:
高度:1
路径长度:1
完整:是
后序:ba

我打算用 Java 来做到这一点。我的问题是,当不在输入文件中进行管道传输时,如何将示例中的多行输入输入到 Windows cmd.exe 行中?因为按 Enter 键只会运行一行输入的程序,而不是创建一个新行。另外,由于作业是自动标记的,因此输入无法交互,那么我如何知道何时停止阅读?

谢谢。

I am trying to do an assignment for school and I don't know how to deal with the input. I have provided a link below for context on the assignment:

https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B1DkmkmuB-leNDVmMDU0MDgtYmQzNC00OTdkLTgxMDEtZTkxZWQyYjM4OTI1&hl=en

I have a general idea on how to do everything the assignment asks, but I'm unsure of how to deal with input.

A sample input is:

a0
0
a00
ab000

Which gives an output of:

Tree 1:
Invalid!
Tree 2:
height: -1
path length: 0
complete: yes
postorder:
Tree 3:
height: 0
path length: 0
complete: yes
postorder: a
Tree 4:
height: 1
path length: 1
complete: yes
postorder: ba

I intend to do this with Java. My question is how do I enter multiple lines of input like in the sample into the Windows cmd.exe line when not piping in an input file? Because pressing enter would just run the program with one line of input instead of making a new line. Also, since the assignment is being marked automatically, the input can't be interactive, so how would I go about knowing when to stop reading?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情深已缘浅 2024-11-11 20:44:26

从任务中:

您可以假设输入将会到来
来自流中的标准输入
代表每行一个字符串。在
实际上,输入将来自
通过管道传输到标准的文件。
输出应发送到标准输出。
示例输入和输出文件是
可用。

只需读取 System.in 并写入 System.out。由于输入将通过管道传输到 stdin,因此您将在输入文件末尾得到 EOF。

通过 CMD 窗口交互时,使用 Ctrl-Z 表示 EOF(在 Windows 上)或在 Linux 系统上,使用 Ctrl-D

From the assignment:

You can assume that input will come
from standard input in a stream that
represents one string per line. In
reality, the input will come from a
file that is piped to standard in.
Output should be sent to standard out.
A sample input and output file are
available.

Just read System.in and write to System.out. Since the input will be piped to stdin, you will get EOF at the end of the input file.

When interacting via the CMD window, use Ctrl-Z to indicate EOF (on Windows) or on a Linux system, use Ctrl-D

[浮城] 2024-11-11 20:44:26

如果您可以使用 System.in,那么您可以使用从 System.in 流读取的 InputStreamReader。然后,使用 BufferedReader 使用 readLine() 方法获取每一行。例如,看看这段代码:

InputStreamReader input = new InputStreamReader(System.in) 
BufferedReader reader = new BufferedReader(input);
while (reader.readLine()) {
//Your code here. It will finish when the reader finds an EOL.
}

If you can use System.in, then you could use an InputStreamReader that reads from a stream of System.in. Then, use a BufferedReader to get each line using readLine() method. For example, look at this code:

InputStreamReader input = new InputStreamReader(System.in) 
BufferedReader reader = new BufferedReader(input);
while (reader.readLine()) {
//Your code here. It will finish when the reader finds an EOL.
}
月依秋水 2024-11-11 20:44:26

这段代码将毫无问题地工作 -

Scanner sc = new Scanner(System.in);   
String bitstring="";   
while(sc.hasNextLine()){  //until no other inputs to proceed            
     bitstring=sc.nextLine();//save it to the bitstring
//proceed with your other codes
}

This code will work without any problem -

Scanner sc = new Scanner(System.in);   
String bitstring="";   
while(sc.hasNextLine()){  //until no other inputs to proceed            
     bitstring=sc.nextLine();//save it to the bitstring
//proceed with your other codes
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文