Java字串進階
Java字串進階
前言
最常用的對字串運算的類別有三個,分別是String,StringBuilder,StringBuffer,下面將會詳細的說說這三個類別......
String
String類別代表字串,這個是最基本的對字串的類,這個也是使用比較多的類,這裡就不再詳細介紹了
建構
new String(String str)
new String(StringBuilder str)
#new String(StringBuffer str)
#new String(byte[] bys,String charsetName)
透過使用指定的字元集解碼指定的byte 子數組,建構一個新的String。
常用方法
char[] toCharArray()
#str charAt(int index)
傳回指定索引處的字符
String concat(String str)
將指定字串str連接到此字串的結尾,傳回連接成功後的字符,因此需要接受才能有效果
boolean contains(CharSequence s)
判斷此字串是否包含指定的char值序列,這裡的CharSequence是一個接口,可以直接使用它的子類作為參數(String,StringBuffer,StringBuild)
static String copyValueOf(char[] c)
將字元陣列變成字串並且傳回
static String copyValueOf(char[] c,int off,int count)
將截取的字元陣列變成字串並且傳回,off是開始截取的下標,count是截取的個數
boolean endWith(String s)
判斷字串是否以s結尾
# #boolean equals(Object o)
用於比較
int indexOf(char c)
傳回字元c在字串中第一次出現的索引
int indexOf(char c,int fromIndex)
從指定索引處開始搜索,尋找第一次出現的索引
- int indexOf(String str)
傳回指定子字串在此字串中第一次出現處的索引。
- int indexOf(String str,int fromIndex)
傳回指定子字串在此字串中第一次出現處的索引,從指定的索引開始。
- boolean isEmpty()
int length()
#boolean matches(String regex)
是否符合正規表示式
trim()
傳回字串的副本,忽略前導空白和尾部空白。
String substring(int beginIndex)
傳回一個新的字串,它是此字串的子字串。
String substring(int beginIndex, int endIndex)
傳回一個新字串,它是此字串的子字串。
String toUpperCase()
使用預設語言環境的規則將此 String 中的所有字元轉換為大寫。
String[] split(String regex)
根據給定正規表示式的符合拆分此字串。
String[] split(String regex, int limit)
根據符合給定的正規表示式來拆分此字串。
將此字串轉換為一個新的字元陣列。
String將此
- charset
byte[] getBytes(Charset charset)
使用給定的
序列,並將結果儲存到新的byte 陣列
######上面的new String(byte[] bys,String charsetName)這個建構方法很重要,它可以改變字串的編碼集(和byte[] getBytes(Charset charset))配合使用,下面我們來看一個例子,程式碼如下:
#注意
/* * InputStreamReader实现了将字节流FileInputStream转换为字符流,然后使用转换来的字节流创建高效流,从而实现高效的读写 *//* * 编码集(我的eclipse编辑器默认的是utf-8 * 下面将中文字符串的编码集变为GBK写入a.txt文件,因为a.txt默认的是utf-8的因此这里在文件中显示的是乱码 * 然后我们读出来的还是GBK的,因为我们写入的是GBK编码集的,但是我的eclipse是utf-8的编码集,因此在控制台上输出的还是乱码 * new String(byte[] bys,String * charsetName)使用这个构造方法将byte数组改变编码集并且转换为utf-8格式的,那么这次在控制台上输出的就不乱码了 */// 将GBK格式的中文写入a.txt文件File file = new File("src/a.txt"); FileOutputStream fileOutputStream = new FileOutputStream(file); String str = "中";byte[] by = str.getBytes("GBK"); // 将字符串改为GBK编码集fileOutputStream.write(by); fileOutputStream.close(); //从a.txt文件中读取中文FileInputStream fileInputStream = new FileInputStream(file);int len;byte[] bys = new byte[4];while ((len = fileInputStream.read(bys)) != -1) { System.out.println(new String(bys, "GBK")); } fileInputStream.close();
public synchronized StringBuffer append(Object obj) {super.append(String.valueOf(obj));return this; }public synchronized StringBuffer append(String str) {super.append(str);return this; } public synchronized StringBuffer delete(int start, int end) {super.delete(start, end);return this; }/** * @throws StringIndexOutOfBoundsException {@inheritDoc} * @since 1.2 */public synchronized StringBuffer deleteCharAt(int index) {super.deleteCharAt(index);return this; }
建構
new StringBuffer(StringBuilder str)
new StringBuffer(String str)
常用的方法
#StringBuffer append(str)
將指定類型的str追加到此字串的後面(String,char,char[],int,double,float,long,StringBuffer,StringBuilder
)
StringBuffer insert(int offest, str)
將指定類型的str插入到此序列中,offest表示開始插入的位置的索引,類型有String,char,char[],int,double,float, long,StringBuffer,StringBuilder
String delete(int fromIndex,int endIndex)
移除此序列中的字串並且傳回新的緩衝字串
StringBuffer reverse()
反轉字串
String substring(int start)
傳回一個新的String,它包含此字元序列目前所包含的字元子序列。
String substring(int start, int end)
傳回一個新的 String,它包含此序列目前所包含的字元子序列。
StringBuffer deleteCharAt(int index)
移除此序列指定位置的 char。
int length()
長度
#String toString()
傳回此序列中數據的字串表示形式。
StringBuilder
建議優先採用該類,因為在大多數實作中,它比
StringBuffer
要快。但是這個類別不是線程安全的,只適合單線程,如果使用多線程推薦使用StringBuffer
,當然使用這個也行,不過需要自己實現同步
建構方法
new StringBuilder(String str)
常用方法
#這個類別的常用方法和
StringBuffer
的一樣,這裡就不再一一列舉了,參考上面的即可使用
以上是Java字串進階的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

Java是熱門程式語言,適合初學者和經驗豐富的開發者學習。本教學從基礎概念出發,逐步深入解說進階主題。安裝Java開發工具包後,可透過建立簡單的「Hello,World!」程式來實踐程式設計。理解程式碼後,使用命令提示字元編譯並執行程序,控制台上將輸出「Hello,World!」。學習Java開啟了程式設計之旅,隨著掌握程度加深,可創建更複雜的應用程式。
