您好,登錄后才能下訂單哦!
這篇文章主要介紹了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。
所以,程序就是通過這種計算方式來快速獲取數組元素。
Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java String字符串如何獲取每一個字符”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。