• day07


    day 07

    包机制

    1. 包名:一般都以公司域名倒置明明。例如:com.baidu.www
    2. package 命令必须在代码的第一行,否则会报错。
    3. 可用import语句引入包或包中的类。(当包中有很多类都需要引用时,配合通配符*使用)。
    4. 结合《阿里巴巴java开发手册》

    JavaDoc

    javadoc命令是用来生成自己的API文档的

    (/**+enter)

    参数信息:

    1. @author 作者名
    2. @version 版本号
    3. @since 指明需要最早使用的jdk版本
    4. @param 参数名
    5. @return 返回值情况
    6. @throws 异常抛出情况

    文档注释加在代码最开始,则是对整个程序进行解释。

    文档注释加在方法前,则是对该方法进行注释,一般会自动生成@param @return @throws

    Scanner类

    //创建一个扫描器对象,用于接收键盘输入的数据
    Scanner scanner = new Scanner(System.in);
    System.out.println("使用next方式接收:");
    //判断用户有没有输入字符串
    if(scanner.hasNext()){
        //用next方式接收
        String str = scanner.next();
        System.out.println("输入的内容为:"+str);
    }
    scanner.close();
    //凡是属于IO流的类,如果不关闭会一直占用资源,一定要养成用完就关掉的习惯。
    
    
    1. 创建一个扫描器对象,用于接收键盘输入的数据
    2. 用next方式接收
    3. 凡是属于IO流的类,如果不关闭会一直占用资源,一定要养成用完就关掉的习惯。
    public class Demo01{
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
            System.out.println("使用hasNextLine接收数据")
            if(scanner.hasNextLine()){
                String str = scanner.nextLine();
                System.out.println("输出的内容为:"+str);
            }
            scanner.close();
        }
    }
    

    next():

    1. 一定要读取到有效字符后才可以输入。例:键盘输入hello world! 只输出:hello
    2. 对输入有效字符之前遇到的空白,next()方法会将其去掉。例:键盘输入: hello world! 只输出:hello
    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
    4. next()不能得到带有空格的字符串

    nextLine():

    1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
    2. 可以获得空白。
    package my_scanner;
    
    import java.util.Scanner;
    
    public class Demo04 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            //从键盘接收数据
            int i = 0;
            float f = 0.0f;
            System.out.println("请输入整数: ");
            if(scanner.hasNextInt()){
                i = scanner.nextInt();
                System.out.println("整数数据: "+i);
            }else{
                System.out.println("输入的不是整数数据!");
            }
            System.out.println("请输入小数: ");
            if(scanner.hasNextFloat()){
                f = scanner.nextFloat();
                System.out.println("小数数据: "+f);
            }else{
                System.out.println("输入的不是小数数据!" );
            }
            scanner.close();
        }
    }
    
    

    这个代码有两个地方不太明白:

    1. 当提示输入整数是,键盘输入小数,则会第一个if语句会正常执行,但不用继续输入小数,会直接输出小数数据为:。

      原因可能是程序等待用户输入的代码是停留在:i = scanner.nextInt();

      所以当输入小数时,数据已经存入scanner中,因此可以直接进行下一步小数判断。

    2. 在第二个提示输入中输入整数,输出的是整数转换为小数后的小数结果,而不是程序预想的输出“输入的不是小数”

      原因:这里应该是有int到float类型的强转,但是debug情况下也没有看到原因。但如果输入的不是八大基本类型,就能正确输出程序预想的输出“输入的不是小数”。

    package my_scanner;
    
    import java.util.Scanner;
    
    public class Demo05 {
        public static void main(String[] args) {
            //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入把那个输出执行结果:
            Scanner scanner = new Scanner(System.in);
            double sum = 0.0;
            int m = 0;
    
            while (scanner.hasNextDouble()){
                double x = scanner.nextDouble();
                m = m+1;
                sum = sum + x;
                System.out.println("输入第"+m+"个数,当前总和为"+sum);
            }
            System.out.println("共输入"+m+"个数,总和为"+sum+",平均值为"+(sum/m));
            scanner.close();
        }
    }
    

    2020.9.22 21:57

  • 相关阅读:
    ubuntu 系统安装python开发环境
    定时任务实现(RabbitMQ 延迟队列)
    鲁迅《弟兄》中,虚伪的是谁?
    mac中iterm不能用sz
    牛客网高频算法题系列BM15删除有序链表中重复的元素I
    牛客网高频算法题系列BM9删除链表的倒数第n个节点
    牛客网高频算法题系列BM8链表中倒数最后k个结点
    牛客网高频算法题系列BM13判断一个链表是否为回文结构
    牛客网高频算法题系列BM11链表相加(二)
    牛客网高频算法题系列BM12单链表的排序
  • 原文地址:https://www.cnblogs.com/vae-469395/p/13715167.html
Copyright © 2020-2023  润新知