Java基本類型包裝類概述與Integer類、Character類用法分析
本文實例講述了Java基本類型包裝類概述與Integer類、Character類用法。分享給大家供大家參考,具體如下:
基本類型包裝類概述
將基本數(shù)據(jù)類型封裝成對象的好處在于可以在對象中定義更多的功能方法操作該數(shù)據(jù)。
常用的操作之一:用于基本數(shù)據(jù)類型與字符串之間的轉換。
基本類型和包裝類的對應
Byte,Short,Integer,Long,Float,Double,Character,Boolean
Integer類
為了讓基本類型的數(shù)據(jù)進行更多的操作,Java就為每種基本類型提供了對應的包裝類類型
package cn.itcast_01;
/*
* 需求1:我要求大家把100這個數(shù)據(jù)的二進制,八進制,十六進制計算出來
* 需求2:我要求大家判斷一個數(shù)據(jù)是否是int范圍內的。
* 首先你的知道int的范圍是多大?
*
* 為了對基本數(shù)據(jù)類型進行更多的操作,更方便的操作,Java就針對每一種基本數(shù)據(jù)類型提供了對應的類類型。包裝類類型。
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* 用于基本數(shù)據(jù)類型與字符串之間的轉換。
*/
public class IntegerDemo {
public static void main(String[] args) {
// 不麻煩的就來了
// public static String toBinaryString(int i)
System.out.println(Integer.toBinaryString(100));
// public static String toOctalString(int i)
System.out.println(Integer.toOctalString(100));
// public static String toHexString(int i)
System.out.println(Integer.toHexString(100));
// public static final int MAX_VALUE
System.out.println(Integer.MAX_VALUE);
// public static final int MIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
Integer的構造方法
package cn.itcast_02;
/*
* Integer的構造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:這個字符串必須是由數(shù)字字符組成
*/
public class IntegerDemo {
public static void main(String[] args) {
// 方式1
int i = 100;
Integer ii = new Integer(i);
System.out.println("ii:" + ii);
// 方式2
String s = "100";
// NumberFormatException
// String s = "abc";//這個字符串必須是由數(shù)字字符組成
Integer iii = new Integer(s);
System.out.println("iii:" + iii);
}
}
String和int的相互轉換
package cn.itcast_03;
/*
* int類型和String類型的相互轉換
*
* int -- String
* String.valueOf(number)
*
* String -- int
* Integer.parseInt(s)
*/
public class IntegerDemo {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1
String s1 = "" + number;
System.out.println("s1:" + s1);
// 方式2
String s2 = String.valueOf(number);
System.out.println("s2:" + s2);
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4);
System.out.println("-----------------");
// String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x);
//方式2
//public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println("y:"+y);
}
}
Integer的進制轉換的操作
package cn.itcast_04;
/*
* 常用的基本進制轉換
* public static String toBinaryString(int i)
* public static String toOctalString(int i)
* public static String toHexString(int i)
*
* 十進制到其他進制
* public static String toString(int i,int radix)
* 由這個我們也看到了進制的范圍:2-36
* 為什么呢?0,...9,a...z,加起來36個
*
* 其他進制到十進制
* public static int parseInt(String s,int radix)
*/
public class IntegerDemo {
public static void main(String[] args) {
// 十進制到二進制,八進制,十六進制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
// 十進制到其他進制
System.out.println(Integer.toString(100, 10));
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------");
//其他進制到十進制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException
//System.out.println(Integer.parseInt("123", 2));
}
}
JDK5的新特性--自動裝箱和自動拆箱
package cn.itcast_05;
/*
* JDK5的新特性
* 自動裝箱:把基本類型轉換為包裝類類型
* 自動拆箱:把包裝類類型轉換為基本類型
*
* 注意一個小問題:
* 在使用時,Integer x = null;代碼就會出現(xiàn)NullPointerException。
* 建議先判斷是否為null,然后再使用。
*/
public class IntegerDemo {
public static void main(String[] args) {
// 定義了一個int類型的包裝類類型變量i
// Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:" + ii);
// 通過反編譯后的代碼
// Integer ii = Integer.valueOf(100); //自動裝箱
// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱
// System.out.println((new StringBuilder("ii:")).append(ii).toString());
Integer iii = null;
// NullPointerException,如果iii為空對象,會報錯,需要判斷是否為空
if (iii != null) {
iii += 1000;
System.out.println(iii);
}
}
}
-128到127之間的數(shù)據(jù)緩沖池問題
package cn.itcast_06;
/*
* 看程序寫結果
*
* 注意:Integer的數(shù)據(jù)直接賦值,如果在-128到127之間,會直接從緩沖池里獲取數(shù)據(jù)
*/
public class IntegerDemo {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);//true
System.out.println(i7.equals(i8));
// 通過查看源碼,我們就知道了,針對-128到127之間的數(shù)據(jù),做了一個數(shù)據(jù)緩沖池,如果數(shù)據(jù)是該范圍內的,每次并不創(chuàng)建新的空間
// Integer ii = Integer.valueOf(127);
}
}
Character
Character 類在對象中包裝一個基本類型 char 的值
package cn.itcast_01;
/*
* Character 類在對象中包裝一個基本類型 char 的值
* 此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉換成小寫,反之亦然
*
* 構造方法:
* Character(char value)
*/
public class CharacterDemo {
public static void main(String[] args) {
// 創(chuàng)建對象
// Character ch = new Character((char) 97);
Character ch = new Character('a');
System.out.println("ch:" + ch);
}
}
Character 類,常見方法。
確定字符的類別(小寫字母,數(shù)字,等等),并將字符從大寫轉換成小寫
package cn.itcast_02;
/*
* public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
* public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
* public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符
* public static char toUpperCase(char ch):把給定的字符轉換為大寫字符
* public static char toLowerCase(char ch):把給定的字符轉換為小寫字符
*/
public class CharacterDemo {
public static void main(String[] args) {
// public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
System.out.println("isUpperCase:" + Character.isUpperCase('A'));
System.out.println("isUpperCase:" + Character.isUpperCase('a'));
System.out.println("isUpperCase:" + Character.isUpperCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
System.out.println("isLowerCase:" + Character.isLowerCase('A'));
System.out.println("isLowerCase:" + Character.isLowerCase('a'));
System.out.println("isLowerCase:" + Character.isLowerCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isDigit(char ch):判斷給定的字符是否是數(shù)字字符
System.out.println("isDigit:" + Character.isDigit('A'));
System.out.println("isDigit:" + Character.isDigit('a'));
System.out.println("isDigit:" + Character.isDigit('0'));
System.out.println("-----------------------------------------");
// public static char toUpperCase(char ch):把給定的字符轉換為大寫字符
System.out.println("toUpperCase:" + Character.toUpperCase('A'));
System.out.println("toUpperCase:" + Character.toUpperCase('a'));
System.out.println("-----------------------------------------");
// public static char toLowerCase(char ch):把給定的字符轉換為小寫字符
System.out.println("toLowerCase:" + Character.toLowerCase('A'));
System.out.println("toLowerCase:" + Character.toLowerCase('a'));
}
}
統(tǒng)計一個字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)
package cn.itcast_03;
import java.util.Scanner;
/*
* 統(tǒng)計一個字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)。(不考慮其他字符)
*
* 分析:
* A:定義三個統(tǒng)計變量。
* int bigCont=0;
* int smalCount=0;
* int numberCount=0;
* B:鍵盤錄入一個字符串。
* C:把字符串轉換為字符數(shù)組。
* D:遍歷字符數(shù)組獲取到每一個字符
* E:判斷該字符是
* 大寫 bigCount++;
* 小寫 smalCount++;
* 數(shù)字 numberCount++;
* F:輸出結果即可
*/
public class CharacterTest {
public static void main(String[] args) {
// 定義三個統(tǒng)計變量。
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
// 鍵盤錄入一個字符串。
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String line = sc.nextLine();
// 把字符串轉換為字符數(shù)組。
char[] chs = line.toCharArray();
// 歷字符數(shù)組獲取到每一個字符
for (int x = 0; x < chs.length; x++) {
char ch = chs[x];
// 判斷該字符
if (Character.isUpperCase(ch)) {
bigCount++;
} else if (Character.isLowerCase(ch)) {
smallCount++;
} else if (Character.isDigit(ch)) {
numberCount++;
}
}
// 輸出結果即可
System.out.println("大寫字母:" + bigCount + "個");
System.out.println("小寫字母:" + smallCount + "個");
System.out.println("數(shù)字字符:" + numberCount + "個");
}
}
PS:這里再為大家推薦幾款功能相似的在線工具供大家參考:
在線任意進制轉換工具:
http://tools.jb51.net/transcoding/hexconvert
字數(shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字母大小寫轉換工具:
http://tools.jb51.net/transcoding/upper
更多關于java相關內容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結》、《Java數(shù)組操作技巧總結》、《Java數(shù)學運算技巧總結》、《Java數(shù)據(jù)結構與算法教程》及《Java操作DOM節(jié)點技巧總結》
希望本文所述對大家java程序設計有所幫助。
相關文章
JAVA接入DeepSeek滿血版的詳細指南(問答接入、流式接入雙模式)
硅基流動推出了功能完備的DeepSeek滿血版,然而眾多用戶在嘗試接入大型模型時仍面臨諸多挑戰(zhàn),特別是在流式接入方面,今天,我將引領大家通過Java實現(xiàn)雙模式接入DeepSeek滿血版,需要的朋友可以參考下2025-03-03
基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟
SpringBoot是一個用于快速開發(fā)單個微服務的框架,它基于 Spring 框架,簡化了Spring應用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-11-11
Java實現(xiàn)讀取CSV文件并將數(shù)據(jù)放入對象
CSV文件是一種常見的數(shù)據(jù)存儲格式,廣泛應用于數(shù)據(jù)交換,日志記錄和表格數(shù)據(jù)處理,在Java開發(fā)中,讀取CSV文件并將數(shù)據(jù)映射到對象中是常見的需求,本文將詳細介紹幾種常見方法,有需要的可以了解下2025-06-06

