-
-
-
笔记杂谈
—主要记录一些日常编程中遇到的新知识
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类型 其余用法待以后遇到了再做补充
-
-
-
-
笔记杂谈
最新推荐文章于 2024-05-22 14:06:16 发布