溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java字符串的示例分析

發(fā)布時(shí)間:2021-07-24 09:29:15 來(lái)源:億速云 閱讀:151 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)Java字符串的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

字符串遍歷

String str = "asdfghjkl";

1.

for(int i=0;i<str.length();i++){ 
char ch = str.charAt(i); 
}

2.

char[] c=str.toCharArray(); 
for(char cc:c){ 
...//cc 直接用了
}

3.

for(int i=0;i<str.length();i++){ 
String subStr = str.substring(i, i+1) 
}

類(lèi)似的,arraylist 三種遍歷方法:

ArrayList 支持 3 種遍歷方式
(01) 第一種,通過(guò)迭代器遍歷。即通過(guò) Iterator 去遍歷。
Integer value = null;
Iterator iter = list.iterator();
while (iter.hasNext()) {
value = (Integer)iter.next();
}
(02) 第二種,隨機(jī)訪問(wèn),通過(guò)索引值去遍歷。
由于 ArrayList 實(shí)現(xiàn)了 RandomAccess 接口,它支持通過(guò)索引值去隨機(jī)訪問(wèn)元素。
Integer value = null;
int size = list.size();
for (int i=0; i<size; i++) {
value = (Integer)list.get(i); 
}
(03) 第三種,for 循環(huán)遍歷。如下:
Integer value = null;
for (Integer integ:list) {
value = integ;
}

效率分析:遍歷 ArrayList 時(shí),使用隨機(jī)訪問(wèn) (即,通過(guò)索引序號(hào)訪問(wèn)) 效率最高,而使用迭代器的效率最低!

類(lèi)型轉(zhuǎn)換

如何實(shí)現(xiàn) String 與基本數(shù)據(jù)類(lèi)型的裝換

將 String 轉(zhuǎn)換為基本的數(shù)據(jù)類(lèi)型。8 個(gè) wrapper class(Integer,Double,...)提供了相對(duì)應(yīng)的方法 parsexxx(String str)將字符串轉(zhuǎn)換為基本的數(shù)據(jù)類(lèi)型,如下:

String str1 = "123";
String str2 = "12.3";
String str3 = "true";
int a = Integer.parseInt(str1); //123
double d = Double.parseDouble(str2); //12.3
boolean flag = Boolean.parseBoolean(str3); //true

如何將基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換為 String,可以使用 String.valueOf()方法進(jìn)行轉(zhuǎn)換,如下:

int a = 123;
double b = 13.05;
boolean flag = true;
String str1 = String.valueOf(a); //123
String str2 = String.valueOf(b); //13.05
String str3 = String.valueOf(flag); //true

同時(shí)還有著更為簡(jiǎn)單快捷的方式,直接在基本數(shù)據(jù)類(lèi)型之后添加 “ ”,如下;

String str1 = a +""; //a
String str2 = flag + ""; //true

分割字符串

在 java 里分割字符串是通過(guò)正則表達(dá)式來(lái)分割

String str = "aa-bb-cc-dd";
String[] res = str.split("-"); //aa bb cc dd

取子串

String str = "abcdefg";
str = str.substring(2, 5); //cde

一個(gè)問(wèn)題

在一些敏感信息上, 為什么傾向用 char[], 而不是 String?

當(dāng) String 一旦創(chuàng)建, 便不可再修改, 直到 gc 將它回收. 可 gc 的回收時(shí)間無(wú)法預(yù)測(cè). 即使一個(gè)對(duì)象不存在引用, 也需要在未來(lái)的某個(gè)時(shí)間才會(huì)讓給出回收. 所以 String 操作敏感信息, 有滲漏的風(fēng)險(xiǎn). 可 char[] 就不一樣了, 我們可以通過(guò)程序直接控制其元素, 一般敏感信息不再有用, 直接將數(shù)組即可, 因此更傾向使用 char[] 來(lái)保存密碼等敏感信息

關(guān)于“Java字符串的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI