Java——String类的方法
Java——String類的方法
String str1 = “abc” 與String str2 = new String(“abc”)有什么區別?
- 字符串常量存儲在字符串常量池,目的是共享
- 字符串非常量對象存儲在堆中
String的常用方法
常用方法1:
- int length():返回字符串的長度return value.length
- char charAt(int index):返回某索引處的字符return value[index]
- boolean isEmpty():判斷是否是空字符串return value.length == 0
- String toLowerCase():使用默認語言環境,將String中的所有字符轉換成小寫
- String toUpperCase():使用默認語言環境,將String中的所有字符轉換成大寫
- String trim():返回字符串的副本,忽略前導空白和尾部空白(中間的空白不能忽略)
- boolean equals(Object obj):比較字符串的內容是否相同
- boolean equalsIgnoreCase(String anotherString):與equals方法類似,忽略大小寫
- String concat(String str):將指定字符串連接到此字符串的結尾。等價于“+”
- int compareTo(String anotherString):比較兩個字符串的大小
- String substring(int beginIndex):返回一個新的字符串,它是此字符串從deginIndex開始到最后一個字符結束的一個子字符串
- String substring(int beginIndex,int endIndex):返回一個新的字符串,它是此字符串的從begin開始,截取到endIndex(不包含)的一個子字符串
常用方法2:
- boolean endsWith(String suffix):測試此字符串是否以指定的后綴結束
- boolean startsWith(String prefix):測試此字符串是否以指定的前綴結束
- boolean startsWith(String prefix,int toffset):測試此字符串從指定索引開始的子字符串是否以指定前綴開始
- boolean contains(CharSequence s):當且僅當此字符串包含指定的char值序列時,返回true
- int indexOf(String str):返回指定子字符串在此字符串中第一次出現的索引,從指定的索引開始
- int lastIndexOf(String str):返回指定字符串在此字符串中最右邊出現處的索引
常用方法3:
- String replace(char oldChar,char newChar):返回一個新的字符串,它是通過用newChar替換此字符串中出現的所有oldChar得到的
-
String replaceAll(String regex,String replacement):使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串
-
boolean matches(String regex):告知此字符串是否匹配給定的正則表達式
-
String[] split(String regex):根據正則表達式的匹配拆分此字符串
-
String[] split(String regex,int limit):根據匹配給定的正則表達式來拆分此字符串,最多不超過limit個,如果超過了,剩下的全部都放到最后一個元素中
如果對字符串進行拼接操作,每次拼接,都會構建一個新的String對象,既耗時,又浪費內存空間,而這種操作還不可避免。如何解決這個問題???可以通過Java提供的StringBuilder類來解決。
StringBuilder和StringBuffer
StringBuilder是一個可變的字符串類,可以把它看成一個容器,這里的可變是指StringBuilder對象中的內容是可變的,可以對字符串內容進行增刪,它做字符串拼接的時候是不會創建一個新的對象的
String的內容是不可變的
StringBuilder內容是可變的,StringBuffer內容是可變的
StringBuffer常用的方法:
- StringBuffer append(xxx):進行字符串拼接
- StringBuffer delete(int start,int end):刪除指定位置的內容
- StringBuffer replace(int start,int end,String str):把[start,end]位置替換為str
- StringBuffer insert(int offset,xxx):在指定位置插入xxx
- StringBuffer reverse():把當前字符序列逆轉
String字符串拼接、StringBuffer、StringBuilder三者效率測試
package string;public class StringDemo06 {public static void stringJoin() {long startTime = System.currentTimeMillis();String s = "";for(int i=0;i<10000;i++) {s = s + "Hello";s = s + "World";s = s + "Hello";}long endTime = System.currentTimeMillis();System.out.println("使用String進行字符串拼接用時(毫秒):"+(endTime - startTime));}public static void stringBufferJoin() {StringBuffer strBuffer = new StringBuffer("");long startTime = System.currentTimeMillis();for(int i=0;i<10000;i++) {strBuffer.append("Hello");strBuffer.append("World");strBuffer.append("Hello");}long endTime = System.currentTimeMillis();System.out.println("使用StringBuffer進行字符串拼接用時(毫秒):"+(endTime - startTime));}public static void stringBuilderJoin() {StringBuilder strBuilder = new StringBuilder();long startTime = System.currentTimeMillis();for(int i=0;i<10000;i++) {strBuilder.append("Hello");strBuilder.append("World");strBuilder.append("Hello");}long endTime = System.currentTimeMillis();System.out.println("使用StringBuilder進行字符串拼接用時(毫秒):"+(endTime - startTime));}public static void main(String[] args) {//String拼接字符串用時stringJoin();//StringBuffer拼接字符串用時stringBufferJoin();//StringBuilder拼接字符串用時stringBuilderJoin();} }運行結果:
總結:StringBuffer與StringBuilder的區別
總結
以上是生活随笔為你收集整理的Java——String类的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--113. 路径总和Ⅱ
- 下一篇: Leetcode--2. 两数相加