Java中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+"个");
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值