Java String類
目錄
概述
字串廣泛應用 在 Java 程式設計中,在 Java 中字串屬於物件,Java 提供了 String 類來建立和操作字串。
jdk中提供非常多的字元和字串操作方法及構造方法,這裡只介紹一些常用的方法和構造方法。完整的String類下的方法可以參考官方的API文件。
本地API文件下載: http://kohler.lanzouv.com/ikIfV078pbhe
線上API文件: http://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html
API文件截圖:
物件建立
直接使用字面值
可以直接定義String型別的變數直接給其賦值一個字串字面值
例:
String name = "愷龍";
使用構造方法
可以使用String中定義的構造方法來建立物件。String類下有非常多的構造方法,這裡只介紹幾個常用的。
String()
public String();
初始化新建立的字串物件,使其表示空字元序列。
示例程式碼:
public static void main(String[] args) { //使用無參構造建立。字串的內容為空 相當於 "" String s1 = new String(); }
String(byte[] bytes)
String(byte[] bytes);
將陣列轉換為字串。
示例程式碼:
public static void main(String[] args) { byte[] bytes = {68,74,84,85}; String s = new String(bytes); System.out.println(s);//輸出結果為DJTU,這裡是將數字通過ASC碼錶轉換為了字母 }
結果:
String(byte[] bytes, int offset, int length)
通過使用平臺的預設字符集解碼指定的 byte 子陣列,構造一個新的 String。
引數:
bytes:要解碼為字元的 byte
offset: 要解碼的第一個 byte 的索引
length: 要解碼的 byte 數 的長度
示例程式碼:
public static void main(String[] args) { byte[] bytes = {68,74,84,85}; String s = new String(bytes,0,2); System.out.println(s);//輸出結果為DJ,從第0個開始長度為2個 String s2 = new String(bytes,0,1); System.out.println(s2);//輸出結果為D,從第0個開始長度為1個 }
結果: String(char[] value)
轉換字元陣列為字串類
示例程式碼:
public static void main(String[] args) { char[] chars = {'D','J','T','U'}; String s = new String(chars); System.out.println(s);//輸出結果為DJTU }
結果: String(char[] value, int offset, int count)
引數:
value - 作為字元源的陣列。
offset - 初始偏移量。
count - 長度。
就是在陣列value上選取一部分成為String物件。
示例程式碼:
public static void main(String[] args) { char[] chars = {'D','J','T','U'}; String s = new String(chars,0,1); System.out.println(s);//輸出結果為D String ss = new String(chars,0,2); System.out.println(s2);//輸出結果為DJ }
結果:
常用方法
方法 | 解釋 |
---|---|
String[] split(String regex) | 把一個字串按照指定的分隔符切割成多個字串,把多個字串放在一個字串陣列中返回 |
char[] toCharArray(); | 把一個字串的內容轉換成一個字元陣列 |
byte[] getBytes(); | 把一個字串的內容轉換成一個byte陣列 |
String substring(int index); | 把某個字串從index索引開始擷取到最後 |
String substring(int begin,int end) | 把某個字串索引begin到索引end截取出來 |
boolean equals(Object anObject) | 判斷兩個字串的內容是否相同 |
split方法演示
public static void main(String[] args) { String s = "DJTU,China,LiaoNing,DaLian"; String[] strs = s.split(",");//以,分割 for (int i = 0; i < strs.length; i++) { System.out.println(strs[i]); } }
結果:
toCharArray方法演示
public static void main(String[] args) { String s = "DJTU"; char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { System.out.println(chars[i]); } }
結果:
getBytes方法演示
public static void main(String[] args) { String s = "DJTU"; byte[] bytes = s.getBytes();//按照ASC碼錶轉換為數字 for (int i = 0; i < bytes.length; i++) { System.out.println(bytes[i]); } }
結果:
substring方法演示
public static void main(String[] args) { String s = "DJTU"; String substring = s.substring(1);//從第[1]個開始擷取 System.out.println(substring); }
結果:
public static void main(String[] args) { String s = "DJTU"; String substring = s.substring(1,2);//從第[1]個開始到第[2]個結束(不包含第[2]個) System.out.println(substring); }
equals方法演示
public static void main(String[] args) { String s = "DJTU"; String s2 = "DJTU"; String s3 = "DJTUD"; boolean flag = s.equals(s2); boolean flag1 = s.equals(s3); System.out.println(flag);//輸出true System.out.println(flag1);//輸出false }
結果:
特點
- 一個字串一旦建立其內容是永遠不會變的
- 字串效果上相當於是char[]字元陣列,但是底層其實是byte[]位元組陣列
如圖片失效等問題請參閱公眾號文章: http://mp.weixin.qq.com/s/_vctLlUqXqy7_vWBwYaFgg
歡迎關注我的公眾號:"愚生淺末",一起交流學習。
- Python 中生成器的原理
- 對開源框架躍躍欲試,卻在寫的時候犯了難?
- 一文讀懂數倉中的pg_stat
- Linux系列之查詢命令
- 聊聊支付流程的設計與實現邏輯
- (資料庫提權——Redis)Redis未授權訪問漏洞總結
- springboot的@ConditionalOnBean註解
- 使用 Cheat Engine 修改 Kingdom Rush 中的金錢、生命、星
- Java String類
- 一次 Keepalived 高可用的事故,讓我重學了一遍它!
- 面試突擊61:說一下MySQL事務隔離級別?
- 小樣本利器2.文字對抗 半監督 FGSM & VAT & FGM程式碼實現
- Spring框架系列(7) - Spring IOC實現原理詳解之IOC初始化流程
- crane:字典項與關聯資料處理的新思路
- 面試突擊60:什麼情況會導致 MySQL 索引失效?
- Java遞迴實現評論多級回覆
- Docker 與 K8S學習筆記(二十四)—— 工作負載的使用
- vue 的常用事件
- 158_模型_Power BI 使用 DAX SVG 打通製作商業圖表幾乎所有可能
- 資料庫系列:MySQL索引優化總結(綜合版)