簡單了解Java字符串(操作)
字符串遍歷
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)
}
類似的,arraylist 三種遍歷方法:
ArrayList 支持 3 種遍歷方式
(01) 第一種,通過迭代器遍歷。即通過 Iterator 去遍歷。
Integer value = null;
Iterator iter = list.iterator();
while (iter.hasNext()) {
value = (Integer)iter.next();
}
(02) 第二種,隨機訪問,通過索引值去遍歷。
由于 ArrayList 實現(xiàn)了 RandomAccess 接口,它支持通過索引值去隨機訪問元素。
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 時,使用隨機訪問 (即,通過索引序號訪問) 效率最高,而使用迭代器的效率最低!
類型轉(zhuǎn)換
如何實現(xiàn) String 與基本數(shù)據(jù)類型的裝換
將 String 轉(zhuǎn)換為基本的數(shù)據(jù)類型。8 個 wrapper class(Integer,Double,...)提供了相對應(yīng)的方法 parsexxx(String str)將字符串轉(zhuǎn)換為基本的數(shù)據(jù)類型,如下:
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ù)類型轉(zhuǎn)換為 String,可以使用 String.valueOf()方法進行轉(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ù)據(jù)類型之后添加 “ ”,如下;
String str1 = a +""; //a String str2 = flag + ""; //true
分割字符串
在 java 里分割字符串是通過正則表達式來分割
String str = "aa-bb-cc-dd";
String[] res = str.split("-"); //aa bb cc dd
取子串
String str = "abcdefg"; str = str.substring(2, 5); //cde
一個問題
在一些敏感信息上, 為什么傾向用 char[], 而不是 String?
當 String 一旦創(chuàng)建, 便不可再修改, 直到 gc 將它回收. 可 gc 的回收時間無法預(yù)測. 即使一個對象不存在引用, 也需要在未來的某個時間才會讓給出回收. 所以 String 操作敏感信息, 有滲漏的風險. 可 char[] 就不一樣了, 我們可以通過程序直接控制其元素, 一般敏感信息不再有用, 直接將數(shù)組即可, 因此更傾向使用 char[] 來保存密碼等敏感信息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用log4j2打印mybatis的sql執(zhí)行日志方式
這篇文章主要介紹了使用log4j2打印mybatis的sql執(zhí)行日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Java數(shù)據(jù)結(jié)構(gòu)之位圖的簡單實現(xiàn)和使用
位圖,?是一種非常常見的結(jié)構(gòu),?它使用每個二進制位來存放一個值的狀態(tài),?就類似于?Java?當中?HashSet?存儲元素的功能。本文主要來介紹一下位圖的簡單實現(xiàn)和使用,需要的可以參考一下2023-05-05
SpringBoot讀取自定義配置文件方式(properties,yaml)
這篇文章主要介紹了SpringBoot讀取自定義配置文件方式(properties,yaml),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Spring MVC如何使用@RequestParam注解獲取參數(shù)
這篇文章主要介紹了Spring MVC實現(xiàn)使用@RequestParam注解獲取參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問題
這篇文章主要介紹了Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問題的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06
猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來用Java把這個小游戲?qū)懗鰜砭毦毷?/div> 2021-10-10最新評論

