Arrays
Arrays 是针对数组进行操作的工具类。
public static String toString(int[] a) //把数组转成字符串
public static void sort(int[] a) //对数组进行排序
public static int binarySearch(int[] a,int key) //二分查找
BigDemical
BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。
public static void main(String[] args) {
System.out.println(0.09 + 0.01); // 0.09999999999999999
System.out.println(1.0 - 0.32); // 0.6799999999999999
System.out.println(1.015 * 100); // 101.49999999999999
System.out.println(1.301 / 100); // 0.013009999999999999
System.out.println(1.0 - 0.12); // 0.88
}
结果和我们想的有一点点不一样,这是因为浮点数类型的数据存储和整数不一样导致的。 它们大部分的时候,都是带有有效数字位。由于在运算的时候,float类型和double很容易丢失精度, 所以,为了能精确的表示、计算浮点数,Java 提供了 BigDecimal。
public BigDecimal(String val) //构造方法
public BigDecimal add(BigDecimal augend) //加
public BigDecimal subtract(BigDecimal subtrahend)//减
public BigDecimal multiply(BigDecimal multiplicand) //乘
public BigDecimal divide(BigDecimal divisor) //除
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
//除法,scale:几位小数,roundingMode:如何舍取
BigInteger
BigInteger:可以让超过 Integer 范围内的数据进行运算。
public BigInteger add(BigInteger val) //加
public BigInteger subtract(BigInteger val) //减
public BigInteger multiply(BigInteger val) //乘
public BigInteger divide(BigInteger val) //除
public BigInteger[] divideAndRemainder(BigInteger val)//返回商和余数的数组
Character
Character 类在对象中包装一个基本类型 char 的值.此外,该类提供了几种方法, 以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
Character(char value) //构造方法
public static boolean isUpperCase(char ch) //判断给定的字符是否是大写字符
public static boolean isLowerCase(char ch) //判断给定的字符是否是小写字符
public static boolean isDigit(char ch) //判断给定的字符是否是数字字符
public static char toUpperCase(char ch) //把给定的字符转换为大写字符
public static char toLowerCase(char ch) //把给定的字符转换为小写字符
Scanner
Scanner:用于接收键盘录入数据。使用 Scanner 三部曲:导包、创建对象、使用相应方法。
Scanner(InputStream source) //构造方法
public boolean hasNextXxx()
//判断是否是某种类型的元素,Xxx表示类型,比如 public boolean hasNextInt()
public Xxx nextXxx() //获取该元素,Xxx表示类型,比如public int nextInt()
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
if(sc.hasNextInt()){
int x=sc.nextInt();
System.out.println("x="+x);
}else{
System.out.println("输入的数据有误");
}
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//输入 12 换行后在输出 "sss"
int x=sc.nextInt();
System.out.println("x:"+x); //x:12
String line=sc.nextLine(); //这里会有问题 因为会将换行符当作字符输输入
System.out.println("line:"+line); //line:
}
public static void method2() {
Scanner sc=new Scanner(System.in);
String xStr=sc.nextLine();
String line=sc.nextLine();
int x=Integer.parseInt(xStr);
System.out.println("x:"+x);
System.out.println("line:"+line);
}