溫馨提示×

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

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

Java String字符串如何獲取每一個(gè)字符

發(fā)布時(shí)間:2021-05-22 10:54:24 來(lái)源:億速云 閱讀:668 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了Java String字符串如何獲取每一個(gè)字符,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

對(duì)于字符串的操作,我們常用的就是trim()去除前后空格、subString()截取子字符串,其他的用的不多。下表中是字符串常用的方法。大家要記一記啊,特別是chartAt()方法比較重要的。因?yàn)橐徊恍⌒木蜁?huì)被面試問(wèn)到哦。

Java String字符串如何獲取每一個(gè)字符

因?yàn)?,本人偶爾?huì)出去試試水,在一次隨機(jī)面試過(guò)程中,就遇到面試官問(wèn)的題:假設(shè)這里有個(gè)字符串String s = "aaabbbbccccdddd";問(wèn),如果去除掉重復(fù)的字母重新組成一個(gè)新的字符串。有幾種解法?

一、循環(huán)字符串,解法

好吧,第一次碰到這種問(wèn)題時(shí),我愣了3秒后,說(shuō)了一種日常開(kāi)發(fā)中的慣用思維。代碼如下:

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

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

這其實(shí)算是一種標(biāo)準(zhǔn)解法啦 ,表要嘲笑我這個(gè)方法蠢。當(dāng)然,還是有其他比較牛逼的解法,代碼如下。

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

String s = "aaabbbbccccdddd";
List<String> list = new ArrayList<String>(); //定義對(duì)象依次存放每一個(gè)字符
 
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>(); //定義對(duì)象依次存放每一個(gè)字符
 
for(int i = 0; i < c.size() ; i++){
 
  String ss = c[i];
 
  list.add(ss);
}
 
System.out.println(list.toString());

二、Java數(shù)組下標(biāo)為何從0開(kāi)始?

大家有沒(méi)有好奇,為什么數(shù)組的下標(biāo)為什么從0開(kāi)始?按常理來(lái)說(shuō),第一個(gè)元素應(yīng)該下標(biāo)應(yīng)該從1開(kāi)始才對(duì)啊,因?yàn)樗饕羔樦赶虻氖堑谝粋€(gè)元素啊。下面為大家揭開(kāi)答案。

因?yàn)?,?shù)組在內(nèi)存中是占用一段連續(xù)的存儲(chǔ)空間,當(dāng)數(shù)組初始化后,數(shù)組的長(zhǎng)度就會(huì)固定不變,需要增加數(shù)組的長(zhǎng)度時(shí),由于數(shù)組的存儲(chǔ)空間附近可能被其它數(shù)據(jù)存儲(chǔ)的空間占用,所以只能創(chuàng)建一片新的存儲(chǔ)空間用來(lái)存儲(chǔ)數(shù)組。

而獲取數(shù)組元素時(shí),規(guī)則是:數(shù)組下標(biāo) * 數(shù)據(jù)類(lèi)型字節(jié)大小 + 數(shù)組首地址的方式來(lái)獲取。如:一個(gè)int類(lèi)型(4個(gè)字節(jié))的數(shù)組,假設(shè)首地址為“1”。那么,第一位元素的地址 = 0 * 4 + 1;第二位元素的地址 = 1 * 4 + 1。

所以,程序就是通過(guò)這種計(jì)算方式來(lái)快速獲取數(shù)組元素。

Java有哪些集合類(lèi)

Java中的集合主要分為四類(lèi):1、List列表:有序的,可重復(fù)的;2、Queue隊(duì)列:有序,可重復(fù)的;3、Set集合:不可重復(fù);4、Map映射:無(wú)序,鍵唯一,值不唯一。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java String字符串如何獲取每一個(gè)字符”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向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