Java学习第14天—一些类

 

BigInteger

针对超出Integer表数范围的大数场景,Java提供了BigInteger类,用于大整型数的计算

BigInteger add(BigInteger val)                                    返回其值为 (this + val) 的 BigInteger

BigInteger subtract(BigInteger val)                             返回其值为 (this - val) 的 BigInteger。

BigInteger multiply(BigInteger val)                              返回其值为 (this * val) 的 BigInteger。

BigInteger divide(BigInteger val)                                 返回其值为 (this / val) 的 BigInteger。

BigInteger[] divideAndRemainder(BigInteger val)       返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。

package com.nim.day14;

import java.math.BigInteger;

public class BigIntegerDemo {

	public static void main(String[] args) {
		String num = "10";
		String num2 = "3";
		
		BigInteger bi = new BigInteger(num);
		BigInteger bi2 = new BigInteger(num2);
		BigInteger[] dis = bi.divideAndRemainder(bi2);
		
		System.out.println(bi.add(bi2));
		System.out.println(bi.subtract(bi2));
		System.out.println(bi.multiply(bi2));
		System.out.println(bi.divide(bi2));
		

		System.out.println("-------------------");
		//BigInteger[] divideAndRemainder(BigInteger val) 
		for (int i = 0; i < dis.length; i++) {
			System.out.println(dis[i]);
		}
		
	}

}

BigDecimal 

浮点型数据进行算术运算容易产生精度丢失问题:

double d1 = 0.1; double d2 = 0.01;  double d3 = d1 - d2;  float f1 = 0.01f;  float f2 = f1 + 0.08f;

针对精确计算的场景,Java提供了BigDecimal类,用于浮点数的精确计算

构造方法:

BigDecimal(double value)

  直接使用double参数的构造方法有一定的不预支性

BigDecimal(String value)

Character

 概述:

Character 类在对象中包装一个基本类型 char 的值。

此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

构造方法:

Character(char value)     构造一个新分配的 Character 对象,用以表示指定的 char 值。

Character类部分方法

都是静态方法

boolean isUpperCase(char ch)   boolean isLowerCase(char ch)

boolean isDigit(char ch)    char toUpperCase(char ch)    char toLowerCase(char ch)

package com.nim.day14;

public class CharacterDemo {

	public static void main(String[] args) {
		/*
		Character c = new Character('a');
		System.out.println(c);
		System.out.println(Character.isDigit('0'));
		System.out.println(Character.isUpperCase('A'));
		System.out.println(Character.isLowerCase('N'));
		*/
		//判断一个字符串中各种字符的个数
		String s = "abcDEF123+-*/";
		
		//第一种方式charAt()
		int u_count = 0;
		int l_count = 0;
		int d_count = 0;
		int o_count = 0;
		/*
		for(int i = 0; i<s.length();i++){
			char ch = s.charAt(i);
			if(Character.isUpperCase(ch)){
				u_count ++;
				
			}else if(Character.isLowerCase(ch)){
				l_count++;
			}else if(Character.isDigit(ch)){
				d_count++;
				
			}else{
				o_count++;
			}
		}
		*/
		//第二种方式:字符数组toCharArray
		char[] ch = s.toCharArray();
		for (int i = 0; i < ch.length; i++) {
			if(Character.isUpperCase(ch[i])){
				u_count ++;
				
			}else if(Character.isLowerCase(ch[i])){
				l_count++;
			}else if(Character.isDigit(ch[i])){
				d_count++;
				
			}else{
				o_count++;
			}
		}
		
		System.out.println("大写字符的个数是:"+u_count);
		System.out.println("小写字符的个数是:"+l_count);
		System.out.println("数字字符的个数是:"+d_count);
		System.out.println("其他字符的个数是:"+o_count);
		
	}

}

猜你喜欢

转载自blog.csdn.net/chengming320/article/details/82419965