標籤:har 靜態方法 cte mil 一個 作用 拆箱 刪除 變數範圍
一.字串定義
直接定義:String str1 = "abc" ;String str2 = "abc" ;,
建立一個新字串:String str3 = new String(); String str4 = new String();
字串類型是一種參考型別,所定義的變數是對象,寫法同物件導向。
注意:str1 == str2 傳回值是true,原因為abc這個值在記憶體的常量池中,當再次定義時如值相同則str1和str2都指向同一個值。
str3 == str4 傳回值是false,原因為使用了new,則在記憶體中建立了兩個空間,str3和str4分別指向不同的對象。
String str3 = new String("abc") 相當於String str3 = "abc", 但底層運行機制不同。
String str1 = null 和String str2 = "" 意思不一樣,第一個沒有任何指向,第二個指向為空白。
二.字串串連
每個字串之間用"+"相連,與其他資料類型串連時,串連之後的傳回值是字串。
三.常用字串操作方法
String str = "abc"; String str2 = "abc"
- str.equals(str2); // 比較兩個字串的值是否相等;( ==在用於非基礎資料類型時是指比較兩個變數指向的地址是否相同,equals 比較兩個對象的值是否相等)
- str.length();// 擷取整個字串的長度;
- str.trim();// 去掉字串兩邊的空格;
- str.charAt(int i);// 擷取某個索引值上的字元;
- str.contains(CharSequence ab);// 是否包含某個字串 ;CharSequence 字元序列
- str.startsWith(String ab); // 判斷是否以某個字串開始;
- str.endsWith(String ab); // 判斷是否以某個字串結尾;
- str.replace(char a, char e); // 將字串中所有的a替換成e;
- str.replace(CharSequence ab, CharSequence aa);// 將字串中所有的ab替換成aa;
- str.split(String s); // 分割字串;將字串以s進行分割,傳回值是數組;
- str.toUpperCase(); // 將字串轉換成大寫
- str.toLowerCase(); // 轉換成小寫
- str.indexOf(String ab);//取這個字串第一次出現的索引位置
- str.lastIndexOf(String s);//取這個字串最後一次出現的索引位置
- str.substring(int i);//取索引值為這個整數參數後面的字串
- str.substring(int i, int j);//取i和j之間的字串(不包括j)
- String.valueOf(any args); // 把任意參數轉換成字串;是對類的方法,屬於靜態方法。
四.常用字串緩衝區操作方法(主要用來構建字串)
傳回值一般為StringBuffer 可以進行類的連貫操作,但不建議。
StringBuffer buffer = new Stringbuffer("abc")
- buffer.append(String 123); // 追加一個字串;
- buffer.insert(int 1, String 123); // 在某個索引位置插入一個字串;輸出為a123bc
- buffer.deleteCharAt(int index);// 刪除在某個索引位置的字元;
- buffer.delete(int start, int end);//刪除兩個索引之間的字元;
- buffer.replace(int start, int end, String s);//替換兩個索引之間的字元;
- buffer.setCharAt(int index, char ch);設定某個索引位置上的字元;
- buffer.toString();把字串緩衝轉換成字串;在列印輸出時預設調用此方法;
- buffer.reverse() // 反轉字串
注意:字串與字串緩衝區別在於字串是常量,無法更改,當進行操作時其效率遠低於使用字串緩衝;
五.System類
- System.currentTimeMillis() ;// 返回當前的系統時間(以時間戳記的形式)
- System.exit(0);//退出當前正在啟動並執行java虛擬機器, 0表示正常退出,其他都是不正常退出,一般用-1,表示整個都不運行了。
- System.gc();//手動啟動記憶體回收機制;JAVA裡自動啟動記憶體回收機制,超出變數範圍的對象, 會及時的被記憶體回收機制回收。不推薦手動調用此方法(降低程式運行效率),此方法會自動調用finalize方法。
- System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);//數組的複製;分別指複製來源名,來源開始複製索引位置,複製目標名,目標開始複製索引位置,複製長度。
六.數字封裝類
自動裝箱:
基礎資料類型不能等於null,將其進行封裝便可以,每一個基礎資料類型都有自己的封裝類。
int 對應Integar;char 對應character;其他都是首字母大寫例: long對應Long;封裝後是一種對象,可以等於null。
Integar i = 2;此段代碼讓程式完成了對變數i的自動裝箱;
自動拆箱:
- Integar.parseInt("123");//將字串123轉換成數字123;如果字串中有非數字字元則會報錯;
- Integer.parseInt(String s, int radix); // 將其他進位的字串轉換成int;逗號後面寫被轉換的進位,如寫16則是將16進位的字串轉化為10進位;radix:基數;
- Integer.toBinaryString(int i); // 將一個int值轉換成二進位的字串
- Integer.toOctalString(int i); // 將一個int轉換成八進位的字串
- Integer.toHexString(int i); // 將一個int轉換成16進位的字串
JAVA 基礎5-字串