API中的常用类之Integer类和Character类

1.Integer类

(1)Integer类是int类型的包装类类型
(2) [问题1] 需要将100十进制 (整数默认十进制) 它的二进制,八进制,十六进制...
Integer提供了静态功能:
  public static String toBinaryString(int i)
  public static String toOctalString(int i)
  public static String toHexString(int i)
 
 
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(100));//1100100
System.out.println(Integer.toOctalString(100));//144
System.out.println(Integer.toHexString(100));//64
}
 
 

[问题2] 需求:获取Integer的最值
  public static final int MAX_VALUE  public static final int MIN_VALUE
public static void main(String[] args) {
		
		System.out.println(Integer.MAX_VALUE);//2^31-1
		System.out.println(Integer.MIN_VALUE);//-2^31
	}

(3)基本类型对应都有一个保证类型,目的就为了将基本数据类型可以String类型之间进行互相转换
  byte              Byte
  short             Short
  int                 integer (讲)
  long              Long
  float              Float
  double          Double
  char              Character (讲)
  boolean        Boolean
(4)Integer的构造方法:
   public Integer(int value)
public static void main(String[] args) {
		//创建一个Integer类对象
		Integer i = new Integer(100);
		
		Integer ii = 100 ; //底层实际代码执行的是:valueOf(int i) 
		System.out.println("i:"+i);
		System.out.println("ii:"+ii);
	}	
: 1)Integer ii = 100; 和 Integer i = new Integer(100);都是把100赋给一个Integer类型的对象,但是 Integer ii = 100 ;底层实际代码执行的是Integer.valueOf(int i) !该类中本身有一缓冲区的 :缓冲的值的范围:-128~127!

public Integer(String s)
Integer i = new Integer("abc") ; 
System.out.println("i:"+i);//java.lang.NumberFormatException
注:  1)当前String类型的值是一个数字类型的字符串, 如果不是,会报java.lang.NumberFormatException异常!
      2)正确形式如下
Integer i = new Integer("100");
System.out.println("i:"+i);
(5)Int和String类型的相互转化
    1)int转换为String类型
      //首先定义一个int类型的变量
      int num = 100 ;
//方式1: 字符串拼接
		String str = ""	+ num ;
		System.out.println("str:"+str);
//方式2:valueOf(int i) ;
//int -->Integer--->String
		Integer i = Integer.valueOf(num) ;
		String str2 = i.toString() ;
		System.out.println("str2:"+str2);
//方式3:静态toString(int i):	static String toString(int i )
		String str3 = Integer.toString(num) ;
		System.out.println("str3:"+str3);
     2)String转换为int类型
    //首先定义一个字符串( 一定要是数字字符串!)
    String s = "100";
//方式1:String-->integer--->int
		Integer i = new Integer(s);
		//public int intValue()
		int num = i.intValue() ;
		System.out.println("num:"+num);
//方式2:(常用)public static int parseInt(String s)
		int num = Integer.parseInt(s) ;
		System.out.println("num:"+num);

(6)JDK5 以后提供了自动拆装箱
   可以将Integer-->拆箱  int类型
   可以将int类型--->装箱  Integer类型
public static void main(String[] args) {
		
		//创建Integer对象
		//Integer i = new Integer(100) ;
		Integer i = 100 ;
		
		i += 200;		//先拆箱(Integer-->int),后装箱(int值---->Integer)
		//引用类型 += 基本类型     
		System.out.println("i:"+i);
	}	
按理说,i+=200;类型不匹配,但事实上,不仅没有报错,还输出了期望的结果,为什么呢?
看源码
                /**
		 * 反编译代码:
		 * 
		 * 	Integer i = Integer.valueOf(100);
			i = Integer.valueOf(i.intValue()  + 200);//(int类型的100 +200),先拆箱(Integer-->int),后装箱(int值---->Integer)
			System.out.println((new StringBuilder("i:")).append(i).toString());
		 */

 JDK5 还提供了哪些特性:
       泛型,可变参数,增强for循环(在集合中讲)等等..

2.Character类

(1)Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
    以确定字符的类别(小写字母,数字,等等)
(2)构造方法:
    public Character(char value)

public static void main(String[] args) {
		
		//创建Character类对象
		//Character ch = new Character((char)97) ;
		Character ch = new Character('a') ;
		System.out.println("ch:"+ch);//a
	}

(3)Character类的判断功能:
    public static boolean isDigit(char ch)确定指定字符是否为数字。
    public static boolean isLowerCase(int ch): 确定是否是小写字母字符
    public static boolean isUpperCase(int ch):确定是否大写字母字符
  
  两个转换功能:
    public static int toLowerCase(int codePoint)
    public static int toUpperCase(int codePoint)
(4) [需求]键盘录入一个字符串,统计当前字符串中大写字母字符,小写字母字符,数字字符的个数(不考虑其他字符) 
    现在改进:直接用Charater类的这三个判断功能
public static void main(String[] args) {
		
		//定义三个统计变量
		int bigCount = 0 ;
		int smallCount= 0 ;
		int numberCount = 0 ;
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//接收数据
		System.out.println("请输入一个字符串:");
		String line = sc.nextLine() ;
		
		//把字符串转成字符数组
		char[] chs = line.toCharArray() ;
		
		//遍历,取出每一个字符
		for(int x = 0 ; x < chs.length ; x ++) {
			char ch = chs[x] ;
			
			//判断当前ch字符是否为大写字母字符,数字字符,小写字母字符
			if(Character.isUpperCase(ch)) {
				bigCount ++;
			}else if(Character.isDigit(ch)) {
				numberCount++;
			}else if(Character.isLowerCase(ch)) {
				smallCount++ ;
			}
		}
		System.out.println("大写字母字符有:"+bigCount+"个");
		System.out.println("小写字母字符有:"+smallCount+"个");
		System.out.println("数字字符有:"+numberCount+"个");
		
	}
}

猜你喜欢

转载自blog.csdn.net/xing_ran_ran/article/details/80219229
今日推荐