在java的输入输出中,有一个很有用的类scanner
Scannner scn=new Scanner(System.in)
String str=scn.nextString()
while(str.IsEmpty())
{
System.out.println(str)
}
无限输入str时,按ctrl+z即可停止输入操作
java的优点:
Java是一个广泛使用的网络编程语言 ,它是一种新的计算概念。
作为一种程序设计语言 ,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。
它最大限度地利用了网络 ,Java的小应用程序 (applet)可在网络上传输而不受 CPU和环境的限制。
Java还提供了丰富的类库 ,使程序设计者可以很方便地建立自己的系统。
一般是以回车键判断的
如果是读取文件的话,设置一个结尾标识符就行了,因为正常的话System.in是个输入流,它除了键盘输入没有其他办法写入数据,因此我觉得采用System.SetIn()重定向标准输入,让指定的(文件)输入流成为标准输入
public static void main(String args[]) {InputStream inputStream
try {
inputStream = new FileInputStream("D:/log.txt")
System.setIn(inputStream)
Scanner scanner = new Scanner(System.in)
while (scanner.hasNext()) {
System.out.println(scanner.nextLine())
}
scanner.close()
} catch (FileNotFoundException e) {
e.printStackTrace()
}
}
一般用Scanner in = new Scanner(System.in)来获取控制台输入,in.hasNext()判断控制台是否输入内容。
例如下面的代码表示始终检测控制台是否有输入数字,然后打印。这种情况一般是按Ctrl+Z表示推出控制台输入。
while (in.hasNext()) {int n = in.nextInt()
System.out.println(n)
}
另外也可以人为判断是否输入结束,比如获取输入的字符串,判断是否为换行\n(或者其他指定字符或字符串等)来结束输入。
还有一些ACM题目中,类似你这样的,一般会先要求输入一个数字表述接下来的输入次数,这些都是可以作为输入结束的判断依据的。