java charAt()返回?cái)?shù)值型的使用示例
在 Java 中,charAt() 方法返回的是 char 類型,它代表的是字符,但字符在計(jì)算機(jī)中也有對(duì)應(yīng)的數(shù)值表示(ASCII 或 Unicode 編碼)。通過(guò)將 char 類型轉(zhuǎn)換或直接參與計(jì)算,我們可以得到它的數(shù)值形式。
核心概念
1. char 的本質(zhì)
char是 Java 的一種基本數(shù)據(jù)類型,表示單個(gè)字符。- 在底層,
char實(shí)際存儲(chǔ)的是字符對(duì)應(yīng)的 Unicode 編碼值,可以看作一個(gè)無(wú)符號(hào) 16 位整數(shù)(范圍:0 ~ 65535)。
2. charAt() 的返回值
charAt(int index)返回的是指定索引位置的字符(char類型)。- 返回的字符可以通過(guò)強(qiáng)制轉(zhuǎn)換、直接運(yùn)算等方式獲得其數(shù)值形式。
如何將 char 轉(zhuǎn)換為數(shù)值
自動(dòng)轉(zhuǎn)換為
int- 在計(jì)算或比較時(shí),
char類型會(huì)自動(dòng)提升為int類型,表示其 Unicode 編碼值。
- 在計(jì)算或比較時(shí),
顯式轉(zhuǎn)換
- 通過(guò)
(int)強(qiáng)制類型轉(zhuǎn)換,可以直接獲得字符的 Unicode 編碼值。
- 通過(guò)
示例代碼
基本示例:char 轉(zhuǎn)換為數(shù)值
public class Main {
public static void main(String[] args) {
String str = "1234";
char ch = str.charAt(0); // 獲取第一個(gè)字符 '1'
// 直接獲取字符的 Unicode 值
int unicodeValue = (int) ch;
// 將字符表示的數(shù)值轉(zhuǎn)換為整數(shù)
int numericValue = ch - '0'; // '1' 的 Unicode 值是 49,'0' 的 Unicode 值是 48
System.out.println("字符:" + ch); // 輸出:字符:1
System.out.println("Unicode 值:" + unicodeValue); // 輸出:Unicode 值:49
System.out.println("實(shí)際數(shù)值:" + numericValue); // 輸出:實(shí)際數(shù)值:1
}
}
示例解析
ch = '1':字符'1'的 Unicode 值是49。ch - '0':'1'的數(shù)值表示為49 - 48 = 1,因?yàn)?nbsp;'0'的 Unicode 值是48。
常見(jiàn)用法
1. 將字符轉(zhuǎn)為數(shù)字
使用 charAt() 遍歷字符串,將每個(gè)字符轉(zhuǎn)換為數(shù)值型:
public class Main {
public static void main(String[] args) {
String str = "12345";
int sum = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
int num = ch - '0'; // 將字符轉(zhuǎn)換為數(shù)值
sum += num;
}
System.out.println("數(shù)字和:" + sum); // 輸出:數(shù)字和:15
}
}
2. 檢查字符是否為數(shù)字
通過(guò) Unicode 范圍檢查字符是否為數(shù)字:
public class Main {
public static void main(String[] args) {
String str = "a1b2c3";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= '0' && ch <= '9') {
System.out.println(ch + " 是數(shù)字!");
} else {
System.out.println(ch + " 不是數(shù)字!");
}
}
}
}
輸出:
a 不是數(shù)字!
1 是數(shù)字!
b 不是數(shù)字!
2 是數(shù)字!
c 不是數(shù)字!
3 是數(shù)字!
3. 累加字符對(duì)應(yīng)的 Unicode 值
有時(shí)需要計(jì)算字符串中所有字符的 Unicode 編碼總和:
public class Main {
public static void main(String[] args) {
String str = "ABC";
int unicodeSum = 0;
for (int i = 0; i < str.length(); i++) {
unicodeSum += str.charAt(i); // 自動(dòng)轉(zhuǎn)換為 int 類型
}
System.out.println("Unicode 值總和:" + unicodeSum); // 輸出:198 (A=65, B=66, C=67)
}
}
4. 轉(zhuǎn)換為二進(jìn)制表示
字符可以轉(zhuǎn)換為其數(shù)值的二進(jìn)制形式:
public class Main {
public static void main(String[] args) {
String str = "AB";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
System.out.println("字符:" + ch + ",二進(jìn)制:" + Integer.toBinaryString(ch));
}
}
}
輸出:
字符:A,二進(jìn)制:1000001
字符:B,二進(jìn)制:1000010
進(jìn)階:結(jié)合實(shí)際問(wèn)題
示例:字符串?dāng)?shù)字轉(zhuǎn)整數(shù)
利用 charAt() 將字符串表示的數(shù)字轉(zhuǎn)換為整數(shù):
public class Main {
public static void main(String[] args) {
String str = "4567";
int num = 0;
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
num = num * 10 + (ch - '0'); // 累加字符的數(shù)值
}
System.out.println("轉(zhuǎn)換后的整數(shù):" + num); // 輸出:4567
}
}
注意事項(xiàng)
charAt()返回的是字符,不是直接的數(shù)字- 如果字符串中的字符是數(shù)字(如
'1'),它的數(shù)值表示是其 Unicode 值,需要通過(guò)減去'0'來(lái)獲得實(shí)際的整數(shù)值。
- 如果字符串中的字符是數(shù)字(如
索引范圍檢查
charAt()的參數(shù)必須在[0, str.length() - 1]范圍內(nèi),否則會(huì)拋出StringIndexOutOfBoundsException。
非數(shù)字字符的處理
- 如果字符串中包含非數(shù)字字符,直接減
'0'會(huì)得到錯(cuò)誤結(jié)果,因此需要在轉(zhuǎn)換前進(jìn)行合法性檢查。
- 如果字符串中包含非數(shù)字字符,直接減
總結(jié)
charAt()返回的字符可以通過(guò)顯式或隱式轉(zhuǎn)換獲取其數(shù)值形式(Unicode 值)。- 對(duì)于字符表示的數(shù)字(如
'1'),需要減去'0'才能獲得實(shí)際的整數(shù)值。 - 常見(jiàn)用途包括:字符串?dāng)?shù)字處理、字符檢查與比較、編碼處理等。
到此這篇關(guān)于java charAt()返回?cái)?shù)值型的使用示例的文章就介紹到這了,更多相關(guān)java charAt()返回?cái)?shù)值型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring task @Scheduled注解各參數(shù)的用法
這篇文章主要介紹了spring task @Scheduled注解各參數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java實(shí)現(xiàn)發(fā)送手機(jī)短信語(yǔ)音驗(yàn)證功能代碼實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)發(fā)送手機(jī)短信語(yǔ)音驗(yàn)證功能代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
新手初學(xué)Java對(duì)象內(nèi)存構(gòu)成
這篇文章主要介紹了深入理解JVM之Java對(duì)象的創(chuàng)建、內(nèi)存布局、訪問(wèn)定位,結(jié)合實(shí)例形式詳細(xì)分析了Java對(duì)象的創(chuàng)建、內(nèi)存布局、訪問(wèn)定位相關(guān)概念、原理、操作技巧與注意事項(xiàng),需要的朋友可以參考下2021-07-07

