JAVA从入门到入土之包机制 ,用户交换Scanner
@[TOP]
#包机制
#用户交换Scanner
#1,包机制
(1),其实包就是文件夹
(2),为了更好的,地组织类,JAVA提供了包机制,用于区别类名的命名空间。因此不同包中的类名可以相同。
(3),package pkg1[pkg2[pkg3...]];
(4),一般利用公司域名倒置作为包名 例如百度包名可以为:com.baidu.www
(5),为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,
 完成此功能。
# 2,用户交换Scanner
(1)Scanner类的介绍:之前我们学的基本语法中我们并不能计算机和人的交互,但是 Java 给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来通过用户在键盘上输入数据从而获取用户的输入。
(2)Scanner类的基本语法:
Scanner scanner=new Scanner;
(3)next&nextLine
思路:分别利用next和nextLine从键盘上输入一些内容,可以得出二者的区别
<1>先用next接收一下输入的内容:
import java.util.Scanner;
public class java1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("next的接收方式:");
String str = scanner.next();
System.out.println("输入内容"+str);
//注:凡是属于IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉.
scanner.close()
IO流:即输入输出流,跟电脑打交道的,键盘输入,输出。
<2>再用nextLine接收一下内容:
import java.util.Scanner;
public class java1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("nextLine的接收方式:");
String str = scanner.nextLine();
System.out.println("输入内容"+str);
//注:凡是属于IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉
scanner.close();
}
二者键盘都输入“hello world”(注意里面有一个空格)可以发现next为
nextLine为:
因此,next()不能得到带有空格的字符串,而nextLine可以,因此,nextLine()比next用的更多。然后havenext 和havenextLine是判断后面还有没有数据。
两者区别总结:
next():
1 、一定要读取到有效字符后才可以结束输入。
2 、对输入有效字符之前遇到的空白, next() 方法会自动将其去掉。
3 、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4 、 next() 不能得到带有空格的字符串。
nextLine():
1 、以 Enter 为结束符 , 也就是说 nextLine() 方法返回的是输入回车之前的所有字符。
2 、可以获得带有空白的字符串。
(4)scanner进阶使用:
我们可以输入多个数字,并求其总和与平均数
ackage cn.itcast.demo;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,
// 每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
Scanner scanner = new Scanner(System.in);
double sum=0;
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
//
m=m+1;//m++//
sum=sum+x; //最终的和等于当前的和加上数字(累加)
System.out.println("你当前输出的是第"+m+"个数"+",然后此时的和为sum:"+sum);
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值是"+(sum/m));
scanner.close();
}
}
分别输入10,20,30,40,可得输出结果为:
下面是用代码测试一下hasNextDouble输出:
谢谢各位大佬!
最后感谢狂神大佬: