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