詳解Java String字符串獲取每一個字符及常用方法

這篇文章主要介紹了詳解Java String字符串獲取每一個字符及常用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧

前言

對於字符串的操作,我們常用的就是trim()去除前後空格、subString()截取子字符串,其他的用的不多。下表中是字符串常用的方法。大家要記一記啊,特別是chartAt()方法比較重要的。因爲一不小心就會被面試問到哦。

因爲,本人偶爾會出去試試水,在一次隨機面試過程中,就遇到面試官問的題:假設這裏有個字符串String s = "aaabbbbccccdddd";問,如果去除掉重複的字母重新組成一個新的字符串。有幾種解法?

一、循環字符串,解法

好吧,第一次碰到這種問題時,我愣了3秒後,說了一種日常開發中的慣用思維。代碼如下:

方法一:s.length(), s.charAt(i) 

String s = "aaabbbbccccdddd";
List<String> list = new ArrayList<String>(); //定義對象依次存放每一個字符
 
for(int i = 0; i < str.length() ; i++){
 
  String ss = String.valueOf(str.charAt(i));
 
  list.add(ss);
}
 
System.out.println(list.toString());

這其實算是一種標準解法啦 ,表要嘲笑我這個方法蠢。當然,還是有其他比較牛逼的解法,代碼如下。

方法二:s.length() ,s.subString(i,i+1)

String s = "aaabbbbccccdddd";
List<String> list = new ArrayList<String>(); //定義對象依次存放每一個字符
 
for(int i = 0; i < str.length() ; i++){
 
  String ss = String.subString(i,i+1);
 
  list.add(ss);
}
System.out.println(list.toString());

方法三:s.toCharArray(), c.size() 

String s = "aaabbbbccccdddd";
char[] c = str.toCharArray();
List<String> list = new ArrayList<String>(); //定義對象依次存放每一個字符
 
for(int i = 0; i < c.size() ; i++){
 
  String ss = c[i];
 
  list.add(ss);
}
 
System.out.println(list.toString());

二、Java數組下標爲何從0開始?

大家有沒有好奇,爲什麼數組的下標爲什麼從0開始?按常理來說,第一個元素應該下標應該從1開始纔對啊,因爲索引指針指向的是第一個元素啊。下面爲大家揭開答案。

因爲,數組在內存中是佔用一段連續的存儲空間,當數組初始化後,數組的長度就會固定不變,需要增加數組的長度時,由於數組的存儲空間附近可能被其它數據存儲的空間佔用,所以只能創建一片新的存儲空間用來存儲數組。

而獲取數組元素時,規則是:數組下標 * 數據類型字節大小 + 數組首地址的方式來獲取。如:一個int類型(4個字節)的數組,假設首地址爲“1”。那麼,第一位元素的地址 = 0 * 4 + 1;第二位元素的地址 = 1 * 4 + 1。

所以,程序就是通過這種計算方式來快速獲取數組元素。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章