网站对公司的作用是什么意思,网络营销培训学院,杭州软件公司排名,哪个网站可以做分期背景
在ACM模式下。需要我们去接受输入的参数#xff0c;一般是使用Scanner去读取控制台输入的参数System.in。 不熟悉的情况下#xff0c;很容易出现问题#xff0c;针对常见的问题做一个总结。
一、nextXxx
如next#xff0c;nextInt#xff0c;nextFloat#xff0c…背景
在ACM模式下。需要我们去接受输入的参数一般是使用Scanner去读取控制台输入的参数System.in。 不熟悉的情况下很容易出现问题针对常见的问题做一个总结。
一、nextXxx
如nextnextIntnextFloat这些方法把空格、制表符、换行符当做分隔符。 这也就意味着读取到的数据里面永远不会出现这些字符。 next读取字符串 nextInt读取整形 nextFloat读取浮点数 在读取数据的时候需要先读取到所需要的数据一直到下一个字符是空格、制表符或换行符就会结束读取前面读取到的就作为一个结果返回。光标就停在碰到的空格、制表符或换行符前面。 如果开头就是分隔符会直接跳过一直到读取到可读取的字符才算本次读取数据的开始 在结合nextIine方法使用的时候需要非常注意。
比如空格分隔
输入 1 2 3 4 一直都是调用nextInt读取数据则第一个读取到的是1第二个读取到的是2第三个读取到的是3. public static void main(String[] args) {Scanner scnew Scanner(System.in);int i sc.nextInt();int s sc.nextInt();System.out.println(i);System.out.println(s);}输入 1 2 3 4 比如先调用nextInt这时候系统会读取1然后判断到下一个字符是空格就停光标停在1的后面1和2中间空格的前面。如果这个时候调用nextLine来读取数据则会把1和2中间的空格也读取到读取到的数据就是空格2空格3空格4如下 public static void main(String[] args) {Scanner scnew Scanner(System.in);int i sc.nextInt();String s sc.nextLine();System.out.println(i);System.out.println(s);}换行符分隔重点
输入如下 2 4 1 2 3 4 比如先调用nextInt然后再调用nextLine。那么调用nextLine会返回一个空字符串因为2后面就是空而nextLine读取的就是当前光标到当前行结束。如下图
二、nextLine
这个命令只有判断到换行符才会结束读取数据也就是说读取的数据里面可以包括空格。 该命令会读取整行数据具体是读取当前光标所在位置一直到遇到换行符结束需要注意的是使用nextLine会直接读取完这一行直到遇到换行符就将光标切换到下一行。 也就是是不存在遇到了换行符光标却还在当前行的情况。
区别
nextLine方法和上面的各种方法分隔符不同。 还有一个非常重要的区别上面的各种命令都不会有读取到空字符串的情况而nextLine存在读取到空字符串的情况。
判断控制台输入是否还有数据
有时候控制台输入的参数数量并不是固定的这个时候就需要判断是否还有下一个参数以及参数的数据类型。 如scanner.hasNextscanner.hasNextInt等。 如输入 a 调用hasNextInt方法系统会判断第一个参数是否是整型第一个参数是a不是整型返回false而如果调用的是hasNext系统会判断第一个参数存在返回true。 无论调用hasNext还是hasNextInt方法在遇到后续没有参数的情况下都会返回false。
数据类型之间是可以隐式转换的比如输入一个整型读取的时候使用hasNextFloat来判断也会返回true。 但是存在小数的数据是无法强转整型的输入浮点数调用hasNextInt返回false。比如输入1.0不会被识别成整型1
三、输出规范化
浮点数上下取整
Math.ceil上取整 Math.floor下取整 浮点数数据设置有效小数位数
格式化打印
可以使用String.format(“”,“”)实现占位符式格式化输出 第一个参数就是模板利用一些特殊标识作为占位符右侧的不定参数和第一个参数里的占位符一一对应。 字符串占位符刚好对应String的s开头浮点和字符也都是这样。需要特殊记忆的就十进制整形%d和十六进制整形%x。
占位符含义%s字符串占位符%d十进制占位符%f浮点数占位符%x十六进制占位符输入的数字会被识别为十进制并将其转化成十六进制进行输出%c字符占位符和字符串不能混字符串是双引号字符是单引号