Scanner & BigInteher & BigDecimal
来源:互联网 发布:复制linux系统 编辑:程序博客网 时间:2024/06/04 08:45
对于java来说获取控制台输入数据,我们肯定不会忽略一个类位于java.util.Scanner 好像就是为我们参加比赛或者其他测试性的数据二量身打造的,那我们一起来看看其中的用法吧。首先我们看它对应的构造方法以后可能用到的 Scanner(String file) Scanner(InputStream source) Scanner(String source) 相关的自己查询API
我们看api不难发现一个成对出现的方法:hasNextXxx() nextXxx() 那你肯定就明白怎么取得相应的吧(默认我们的扫描器是按照空格进行扫描区分割的,你可以自己按照你所需的进行拆分获取标记利用正则表达式)
常用的方法有:
hasNext()
hasNext(Pattern pattern) 可以设置相应的匹配模式
hasNext(String pattern) 下一个标记从指定字符串构造模式匹配
hasNextInt()
hasNextLine() 是否存在一行
hasNextDouble()
hasNext
hasNextBigDecimal() 大实数
hasNextBigInteher() 大整数
其他的我就不一 一列举啦
next() 获取的是下一个标记
nextLine()、 nextDouble()、nextInt()、nextBIgDecimal()、nextInteger()
useDelimiter(Patter pattern)采用指定的分割模式
我只演示一个例子就清楚啦
import java.io.BufferedInputStream;import java.util.Scanner;public class ScannerTest {/* * @author cai * @date 2014-5-9 15:33:18 * @result practice Scanner class and apply it's method * common construction method such as * Scanner(String file) * Scanner(InputStream source) * Scanner(String source) * * * * * */public static void main(String[] args) {// java.util.Scanner init Scanner class Scanner scanner = new Scanner(new BufferedInputStream(System.in) );String str = null;while (scanner.hasNextLine()) {System.out.println(scanner.nextLine());}}}
BigInteger BigDecimal在大数运算的时候的非常easy 还有精度值 (MathContext 、RoundinMode)
位于java.math.*;在这个包下面 我只例举啦BigDecimal我想你肯定会举一反三吧 另外一个类里面的方法也差不多
构造方法BigDecimal(BigInteger val) Bigdecimal(String val) BigDecimal(String val,MathContext mc) BigDecimal(char[] in) BigDecimal(double val) BigDecimal(double val,MathContext mc)(需要知道其他的构造方法查询API)
还有一些成员变量 ZERO TEN ROUND_CEILING ROUND_DOWN (舍去模式)
and(BigDecimal val) 进行&操作 and(BigDecimal val) subtract(BigDecimal val) abs(BigDecimal val) mutiply(BigDecimal val) divide(BigDecimal val) remainder(BigDecimal val)
movePointLeft(int n) movePointRight(int n) round(MathContext mc) setScale(int newScale) 设置新标度 stripTrailingZeros() 返回数值上等于此小数,但从该表示形式移除所有尾部零的BigDecimal。toPlainString()返回不带指数字段的此BigDecimal 的字符串表示形式。pow(int n)
public enum RoundingMode
抛出 ArithmeticException
MathContext 这个类主要是设置其精度 构造方法MathContext(int setPrecision)设置精度值 MathContext(int setPrecision,RoundingMode setRoundingMode) 使用指定的精度和舍入模式构造一个新的MathContext。
import java.io.BufferedInputStream;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.util.Scanner;public class ScannerTest {/* * @author cai * @date 2014-5-9 15:33:18 * @result practice Scanner class and apply it's method * common construction method such as * Scanner(String file) * Scanner(InputStream source) * Scanner(String source) * * * * * */public static void main(String[] args) {// java.util.Scanner init Scanner class Scanner scanner = new Scanner(new BufferedInputStream(System.in) );String str = null;while (scanner.hasNextLine()) {BigDecimal val = scanner.nextBigDecimal();val.setScale(8);//小数点后面数有几位System.out.println("ulp method表示最低位数量级"+val.ulp());System.out.println("scale 表示小数点后面的位数 也就是精确的位数"+val.scale());System.out.println("返回其精度"+val.precision()+"设置其精度 是从左向右数"+val.round(new MathContext(8, RoundingMode.UP)).toPlainString()+" " +val.precision());}}}
- Scanner & BigInteher & BigDecimal
- Scanner
- scanner
- Scanner
- scanner
- Scanner
- Scanner
- Scanner
- Scanner
- scanner
- Scanner
- Scanner
- Scanner
- scanner
- scanner
- Scanner
- Scanner
- Scanner
- PAT A 1021.Deepest Root (25)
- 日子越过越好
- 【文本分类】最强中文分词系统ICTCLAS
- QT中QString 类的使用
- Compiler_词法分析_直接转向法
- Scanner & BigInteher & BigDecimal
- Java中JME、JSE、JEE、JFX的区别
- wifi共享精灵2014. 4 .25升级日志详解
- magento 后台保存分类失败,无法保存产品,ajax一直在转的问题 的解决 - Cannot edit categories in Magento
- Algorithm学习笔记 --- Black Box
- 如何用各种编程语言杀死一条龙
- 智能家居离我们还有多远
- epoll通俗讲解
- 即将到来的Autodesk 主要产品2015版 产品和API新功能在线培训(免费)