笔记杂谈

      • 笔记杂谈

        ​ —主要记录一些日常编程中遇到的新知识

        1、next()与nextLine()的区别

        • next()方法不能接收任何空白字符,即便是字符串前方的空格,这个空白字符包括制表符、换行符以及制表符。

        • nextLine()方法能接接收除了换行符以外的空白字符。

        • 通俗点说就是next()方法只要字,nextLine()方法除了回车都要

        • 如果在next()方法后面使用nextLine()方法,会导致nextLine()接收next()输入后的换行符,导致nextLine()方法不能正常输入

          import java.util.Scanner;
          public class Test{
              static Scanner input = new Scanner(System.in);
              public static void main(String[] args) {
                  System.out.println("next():输入任意字符串:");
                  System.out.println("输入的字符串为:" + input.next());
                  System.out.println("nextLine():输入任意字符串:" );
                  System.out.println("输入的字符串为:" + input.nextLine());
              }
          }
          

        运行结果

        上例代码的运行结果

        • nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法从键盘输入值。

        • 一般会出现这种情况的还有nextInt().nextFloat(),nextDouble()等方法与nextLine()的连用,解决的办法为在两个方法之间添加一个nextLine()来接收第一个输入未接收的空格

          import java.util.Scanner;
          public class Test{
          	static Scanner input = new Scanner(System.in);
          	public static void main(String[] args) {
          		System.out.println("next():输入任意字符串:");
          		System.out.println("输入的字符串为:" + input.next());
          		input.nextLine();
          		System.out.println("nextLine():输入任意字符串:");
          		System.out.println("输入的字符串为:" + input.nextLine());
          	}
          }
          

          运行结果

        2、随机数的产生

        • Random有两种构造方法

          //第一种,使用默认的系统时间毫秒数当做随机数种子
          Random rand = new Random();
          //第二种,在构造Random对象的时候指使用单个long类型的种子
          Random rand = new Random(20);
          //相同的种子生成的随机数序列是一样的
          
          import java.util.Random;
          public class Test{
              static Random rand1 = new Random();
              static Random rand2 = new Random();
              static Random rand3 = new Random(20);
              static Random rand4 = new Random(20);
              public static void main(String[] args) {
                  //产生三个10-99之间的随机数
                  System.out.println("系统时间毫秒数作为种子");
                  System.out.println("第一个随机数序列(rand1)");
                  for(int i = 0; i < 3; i++){
                      System.out.println("第" + (i+1) + "个随机数:" + (rand1.nextInt(89)+10));
                  }
                  System.out.println("第二个随机数序列(rand2)");
                  for(int i = 0; i < 3; i++){
                      System.out.println("第" + (i+1) + "个随机数:" + (rand2.nextInt(89)+10));
                  }
                  System.out.println("使用固定随机数种子");
                  System.out.println("第一个随机数序列(rand3)");
                  for(int i = 0; i < 3; i++){
                      System.out.println("第" + (i+1) + "个随机数:" + (rand3.nextInt(89)+10));
                  }
                  System.out.println("第二个随机数序列(rand4)");
                  for(int i = 0; i < 3; i++){
                      System.out.println("第" + (i+1) + "个随机数:" + (rand4.nextInt(89)+10));
                  }
              }
          }
          /**
           * 输出结果:
           * 
           *第一个随机数序列(rand1)
           * 第1个随机数:27
           * 第2个随机数:78
           * 第3个随机数:57
           * 第二个随机数序列(rand2)
           * 第1个随机数:54
           * 第2个随机数:75
           * 第3个随机数:59
           * 使用固定随机数种子
           * 第一个随机数序列(rand3)
           * 第1个随机数:54
           * 第2个随机数:33
           * 第3个随机数:59
           * 第二个随机数序列(rand4)
           * 第1个随机数:54
           * 第2个随机数:33
           * 第3个随机数:59
           */
          
          • 根据上面代码运行结果可以看出,rand1与rand2使用系统时间毫秒数作为随机数种子,因为调用两个对象产生随机数时时间不同,所以产生的随机数序列也是不同的;反观rand3与rand4,二者都是将20作为随机数种子,产生的随机数序列也就是相同的。

          • 一些Random的基本用法

            rand.nextInt(10); 	//生成[0,10)范围内的整型数据
            rand.nextInt(90)+10;//生成[10,100)范围内的整型数据
            int类型可以替换为float,boolean,double类型
            其余用法待以后遇到了再做补充
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值