作用:
可以通过Scanner类获取用户输入
Scanner s = new(System.in);//将用户输入赋值给s
使用next()或nextLine()方法获取输入的字符串
在读取前一般用hasNext()与hasNextLine()判断是否还有 输入的数据
用完scanner之后要调用close()方法关掉(节省资源)
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in);//将用户输入赋值给s //通过hasNext每次判断是否有句子输入 if(s.hasNext()){ String str = s.next();//识别一句,识别完一句之后光标移动到下一句,当再次用next()时会识别下一句 System.out.println("输出内容为:"+str); } s.close();//用完之后要关掉 } } 输入:sxw 输出: 输出内容为:sxw
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in);//将用户输入赋值给s //进行循环,每次判断是否还有句子,当没有句子时结束 while(s.hasNext()){ String str = s.next();//识别一句,识别完一句之后光标移动到下一句,当再次用next()时会识别下一句 System.out.println("输出内容为:"+str); } s.close();//用完之后要关掉 } } 输入:ad fs gg 输出: 输出内容为:ad 输出内容为:fs 输出内容为:gg
方法:
next():
nextLine():
以Enter(回车)为结束符,也就是说nextLine()方法返回的是输入字符前的所有字符
可以获得空白
public class Demo1 { public static void main(String[] args) { Scanner s = new Scanner(System.in); if (s.hasNext()){ String str=s.nextLine(); System.out.println("输出内容为:"+str); } s.close();//用完之后要关掉 } } 输入:ad fs gg 输出: 输出内容为:ad fs gg
public class Demo2 { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str=s.nextLine(); System.out.println("输出内容为:"+str); s.close();//用完之后要关掉 } } 输入:ad fs gg 输出: 输出内容为:ad fs gg
hasNext():判断是否有数据输入
hasNextInt():判断是否有整数输入
hasNextDouble():判断是否有Double数据输入
hasNext..():判断是否有..数据输入(..中可以填入Int、Double等等)
next():读字符串(String类型)
nextDouble():读Double类型数据
nextInt():读Int类型数据
next..():读..类型数据
例:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果 import java.util.Scanner; public class Demo2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; int num=0; //scanner.hasNextDouble()判断是否有Double类型的数据输入,如果不是Doule类型(比如x),则跳出循环 while(scanner.hasNextDouble()){ sum+=scanner.nextDouble(); num++; } scanner.close(); System.out.println("总和为:"+sum); System.out.println("平均数为:"+(sum/num)); } } 输入: 20 30 40 x 输出: 总和为:90.0 平均数为:30.0