Java学习笔记_字符串/静态static
字符串的特點(diǎn)
創(chuàng)建字符串的常見3+1種方式
三種構(gòu)造方法:
public String():創(chuàng)建一個(gè)空白字符串,不含有任何內(nèi)容
public String(char[] array):根據(jù)字符數(shù)組的內(nèi)容,來(lái)創(chuàng)建對(duì)應(yīng)的字符串
public String(byte[] array):根據(jù)字節(jié)數(shù)組的內(nèi)容,來(lái)創(chuàng)建對(duì)應(yīng)的字符串
一種直接創(chuàng)建
String str = “Hello”;//右邊直接用雙引號(hào)
字符串的比較相關(guān)方法
public static void main(String[] args){String str1 = “Hello”;String str2 = “Hello”;char[] charArray = {‘H’,’e’,’l’,’l’,’e’};String str3 = new String(charArray);System.out.println(str1.equals(str2));System.out.println(str2.equals(str3));System.out.println(str3.equals(“Hello”));System.out.println(“str2”.equals(str1));String str4 = “hello”;System.out.println(str1.equals(str4));//falseString str5 = null;System.out.println(“abc”.equals(str5));//推薦,falseSystem.out.println(str5.equals(“abc”));//不推薦,報(bào)錯(cuò),空指針異常NullPointerExceptionString strA = “Java”;String strB = “java”;System.out.println(strA.equals(strB));//false,嚴(yán)格區(qū)分大小寫System.out.println(strA.equalsIgnoreCase(strB));//true,忽略大小寫 }==是進(jìn)行對(duì)象的地址值比較,如果確實(shí)需要字符串內(nèi)容的比較,可以使用兩個(gè)方法
public boolean equals(Object obj):
參數(shù)可以是任何對(duì)象,只有參數(shù)是一個(gè)字符串并且內(nèi)容相同的才會(huì)給true
否則返回false
注意事項(xiàng):
推薦:“abc”.equals(str) 不推薦: str.equals(“abc”)
public boolean equalsIgnoreCase(String str):忽略大小寫,進(jìn)行內(nèi)容比較
字符串的獲取相關(guān)方法
public int length(); 獲取字符串當(dāng)中含有的字符串個(gè)數(shù),拿到字符串的長(zhǎng)度
public String concat(String str):
將當(dāng)前字符串和參數(shù)字符串拼接成為返回值新的字符串
public char charAt(int index):
獲取指定索引位置的單個(gè)字符。(從索引0開始)
public int indexOf(String str):
查找參數(shù)字符串在本字符串當(dāng)中首次出現(xiàn)的索引位置,如沒有,返回值為-1
字符串的截取方法
public String substring(int index);
截取從參數(shù)位置一直到字符串末尾,返回新字符串
public String substring(int begin,int end);
截取從begin開始,一直到end結(jié)束中間的字符串
備注:[begin,end),包含左邊,不包含右邊
字符串的轉(zhuǎn)換相關(guān)方法
String當(dāng)中與轉(zhuǎn)換相關(guān)的常用方法:
public char[] toCharArray();
將當(dāng)前字符串拆分成為字符數(shù)組作為返回值
public byte[] getBytes();
獲得當(dāng)前字符串底層的字節(jié)數(shù)組
public String replace(CharSequence oldString,CharSequence newString);
將所有出現(xiàn)的老字符串替換成為新的字符串,返回替換之后的結(jié)果新字符串。
字符串的分割方法
public String[] split(String regex)
按照參數(shù)規(guī)則,將字符串切分成為若干部分
注意事項(xiàng):
split方法的參數(shù)其實(shí)是一個(gè)“正則表達(dá)式”
如果按照英文句點(diǎn)“.”進(jìn)行切分,必須寫“\.”
如果一個(gè)成員變量使用了static關(guān)鍵字,那么這個(gè)變量不再屬于對(duì)象自己,而是屬于所在的類。多個(gè)對(duì)象共享同一份數(shù)據(jù)。
public class Student{private int id;private String name;private int age;static String room;private static int idCounter = 0;//學(xué)號(hào)計(jì)數(shù)器,每當(dāng)new了一個(gè)新對(duì)象的時(shí)候,計(jì)數(shù)器++public Student(){idCounter++;}public Student(String name,int age){this.name = name;this.age = age;this.id = ++idCounter;} }一旦使用static修飾成員方法,那么這就成為了靜態(tài)方法。靜態(tài)方法不屬于對(duì)象,而是屬于類。
如果沒有static關(guān)鍵字,那么必須首先創(chuàng)建對(duì)象,然后通過對(duì)象才能使用它。
如果有了static關(guān)鍵字,那么不需要?jiǎng)?chuàng)建對(duì)象,直接就能通過類名稱來(lái)使用它
無(wú)論是成員變量,還是成員方法,那么必須首先創(chuàng)建對(duì)象,然后通過對(duì)象才能使用它
靜態(tài)變量:類名稱.靜態(tài)變量
靜態(tài)方法:類名稱.靜態(tài)方法()
注意事項(xiàng):
原因:因?yàn)閮?nèi)存當(dāng)中是先有靜態(tài)內(nèi)容,后有非靜態(tài)內(nèi)容
原因:this代表當(dāng)前對(duì)象,通過誰(shuí)調(diào)用的方法,誰(shuí)就是當(dāng)前對(duì)象
靜態(tài)代碼塊
靜態(tài)代碼塊的格式:
public class 類名稱{
static class 類名稱{
//靜態(tài)代碼塊的內(nèi)容
}
}
特點(diǎn):當(dāng)?shù)谝淮斡玫奖绢悤r(shí),靜態(tài)代碼塊執(zhí)行唯一的一次
靜態(tài)內(nèi)容總是優(yōu)先于非靜態(tài),所以靜態(tài)代碼塊比構(gòu)造方法先執(zhí)行
靜態(tài)代碼塊的典型用途:
用來(lái)一次性地對(duì)靜態(tài)成員變量進(jìn)行賦值
java.util.Arrays是一個(gè)與數(shù)組相關(guān)的工具類,里面提供了大量的靜態(tài)方法,用來(lái)實(shí)現(xiàn)數(shù)組的常見操作
public static String toString(數(shù)組):將參數(shù)數(shù)組變成字符串(按照默認(rèn)格式:[元素1,元素2,元素3 …])
public static void sort(數(shù)組):按照默認(rèn)升序(從小到大)對(duì)數(shù)組的元素進(jìn)行排序
備注:
數(shù)學(xué)工具類
java.util.Math類是數(shù)學(xué)相關(guān)的工具類,里面提供了大量的靜態(tài)方法,完成與數(shù)學(xué)運(yùn)算相關(guān)的操作
總結(jié)
以上是生活随笔為你收集整理的Java学习笔记_字符串/静态static的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最后的更新:谷歌发布适用于 Pixel
- 下一篇: Java学习笔记_继承