JAVA API 實(shí)用類(lèi) String詳解
String類(lèi)
字符串的概念
簡(jiǎn)單來(lái)說(shuō)字符串就是由多個(gè)字符(char)來(lái)組成的一串,我們自然可以用char[] 數(shù)組來(lái)保存一個(gè)字符串.但是在操作字符串時(shí),比方說(shuō)插入一個(gè)字符到字符串中,需要實(shí)現(xiàn)后移等操作.為了應(yīng)對(duì)這個(gè)問(wèn)題,C++引入string類(lèi),類(lèi)似的Java也有String類(lèi).String類(lèi)位于java.lang中于是不需要import導(dǎo)入包.
Java String的特殊之處
假設(shè)我們定義4個(gè)字符串,讓他們的內(nèi)容相同,唯一的不同是是否用new語(yǔ)句。這里需要注意的一點(diǎn)是為了提高運(yùn)行速度,Java采用了“對(duì)象池”來(lái)存放字符串常量,即開(kāi)辟一個(gè)專(zhuān)門(mén)的字符串池來(lái)存放字符串,創(chuàng)建一個(gè)字符串時(shí),系統(tǒng)將會(huì)在字符串池中查找有無(wú)相同內(nèi)容的字符串存在,如果有直接使用該對(duì)象。也就是說(shuō)str1 與str2指向的是同一個(gè)字符串。而str3、str4通過(guò)new產(chǎn)生 指向的不是一個(gè)字符串。更為值得注意的是String內(nèi)容的不可變性。也就是說(shuō)每次改變字符串內(nèi)容都會(huì)產(chǎn)生一個(gè)新的對(duì)象,或者指向字符串池中已經(jīng)存在的字符串對(duì)象.
String str1="一個(gè)字符串"; String str2="一個(gè)字符串"; String str3=new String("一個(gè)字符串"); String str4=new String("一個(gè)字符串"); str1="另外一個(gè)字符串";//原來(lái)的對(duì)象"一個(gè)字符串"仍然存在,會(huì)造成內(nèi)存消耗
String類(lèi)的基本方法
字符串創(chuàng)建
1. String()//生成一個(gè)空串 String a=new String(); 2. String(String original)//原有字符串直接復(fù)制 String a="java",String b= new String(a); 3.String(char[],start,count)//字符串?dāng)?shù)組賦值 后面兩參數(shù)可以省略 分別為開(kāi)始的位置和長(zhǎng)度 char ch[]={'a','b','v','c','d','e'}; String s1=new String(ch);//s1=abvcde; String s2=new String (ch,2,3)//s2=vcd;
常用方法
//獲取長(zhǎng)度 String s="sabsda"; int cnt=s.length(); boolean equals(a,b);//比較兩個(gè)字符串內(nèi)容是否相同,區(qū)分大小寫(xiě) boolean equalsIgoreeCase()//無(wú)視大小寫(xiě)比較 /*與==的區(qū)別是equal只判斷內(nèi)容是否相同,而==比較是否指向同一個(gè)對(duì)象*/ String str1="一個(gè)字符串"; String str2="一個(gè)字符串"; String str3=new String("一個(gè)字符串"); String str4=new String("一個(gè)字符串"); equals(str1,str2)==1 (str1==str2)==1 equals(str3,str4)==1 (str3==str4)==0; int compareTO(a,b);//字典序比較 如果a<b返回負(fù)數(shù) a==b返回0 a>b返回正數(shù) int compareTOUgnoreCase();//不區(qū)分大小寫(xiě) boolean startsWith(string a);//是否以a作為開(kāi)頭 boolean endsWiith(String a);// 是否以a作為結(jié)尾 //字符串的查找 1.int indexOf(char ch) 2.int indexOf(char ch,int position); //字符串的修改 //需要注意的是,字符串內(nèi)容具有不可改變性,如果硬性改變會(huì)產(chǎn)生新的字符串但是原串不發(fā)生改變.所以所有改變字符串的操作都會(huì)返回一個(gè)新的字符串對(duì)象而不是再原串上修改 1.連接 String str="This".concat("a") concat類(lèi)似于 +; 2 替代 str.replace('a','b')將str中a替換成b 3 去除頭部與尾部空格 str.trim(); 4 str.toLowerCase()//小寫(xiě) 5 str.toUUpperCase()//大寫(xiě)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
- 一文帶你初識(shí)java中的String類(lèi)
- Java常用API類(lèi)之Math System tostring用法詳解
- Java String類(lèi)的性質(zhì)與比較
- 關(guān)于Java中String類(lèi)字符串的解析
- Java String類(lèi)字符串的理解與認(rèn)知
- 一文帶你認(rèn)識(shí)java中的String類(lèi)
- JAVA基礎(chǔ)類(lèi)庫(kù)之String類(lèi),StringBuffer類(lèi)和StringBuilder類(lèi)
- java.lang.String類(lèi)的使用
- 深入了解Java核心類(lèi)庫(kù)--String類(lèi)
- 詳解Java中String類(lèi)的各種用法
相關(guān)文章
Java SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)詳解上篇
首先我們已經(jīng)知道,在現(xiàn)在流行的“前后端完全分離”架構(gòu)中,前后端聯(lián)調(diào)是一個(gè)不可能避免的問(wèn)題,這篇文章主要介紹了Java SSM實(shí)現(xiàn)前后端協(xié)議聯(lián)調(diào)過(guò)程2022-08-08springmvc+spring+mybatis實(shí)現(xiàn)用戶(hù)登錄功能(上)
這篇文章主要為大家詳細(xì)介紹了springmvc+spring+mybatis實(shí)現(xiàn)用戶(hù)登錄功能,比較基礎(chǔ)的學(xué)習(xí)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07SpringMVC 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了SpringMVC 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Spring配置多個(gè)數(shù)據(jù)源并實(shí)現(xiàn)動(dòng)態(tài)切換示例
本篇文章主要介紹了Spring配置多個(gè)數(shù)據(jù)源并實(shí)現(xiàn)動(dòng)態(tài)切換示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04SpringBoot項(xiàng)目實(shí)現(xiàn)統(tǒng)一異常處理的最佳方案
在前后端分離的項(xiàng)目開(kāi)發(fā)過(guò)程中,我們通常會(huì)對(duì)數(shù)據(jù)返回格式進(jìn)行統(tǒng)一的處理,這樣可以方便前端人員取數(shù)據(jù),后端發(fā)生異常時(shí)同樣會(huì)使用此格式將異常信息返回給前端,本文介紹了如何在SpringBoot項(xiàng)目中實(shí)現(xiàn)統(tǒng)一異常處理,如有錯(cuò)誤,還望批評(píng)指正2024-02-02