在ACM题中常需要从键盘获取数据,这里整理一下Scanner类的用法,解决这方面的问题。
1.scanner的构造方法:
<span style="white-space:pre"> </span><pre name="code" class="java">Scanner sc =new Scanner(System.in); //从键盘获取输入
Scanner sc =new Scanner(File file); //从File对象获取
Scanner sc =new Scanner(String str); //从字符串str获取
2.scanner常用方法:hasNext();hasNextLine();next();nextLine();nextInt();
1)has****():字面意思。存不存在元素;
2)next***():字面意思,获取当前的元素,每sc.next()一次,都会将指针、下标后移一次。
注意:next()是获取一个String单位,nextLine()是获取一行。在从键盘输入一行,next()获取,是获取一行内容,但以String为单位分行输出;而nextLine()也是获取一行,在一行内输出;
</pre><p><pre name="code" class="java">public class ScannerTest {
public static void main(String [] args){
System.out.println("请从键盘输入:");<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span>Scanner sc =new Scanner(System.in);</span><pre name="code" class="java"> while(true){
<span style="white-space:pre"> </span>String str=sc.next()
<span style="white-space:pre"> </span>if (str.equals("exit")){break;}
<span style="white-space:pre"> </span>System.out.println("输出键盘输入内容:"+str);}}}
输出结果:
请从键盘输入:
1 2 1212
输出键盘输入内容:1
输出键盘输入内容:2
输出键盘输入内容:1212
若
<pre name="code" class="java">String str=sc.nextLine()
输出结果:
请从键盘输入:
1 2 111
输出键盘输入内容:1 2 111