日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java学习笔记_字符串/静态static

發(fā)布時(shí)間:2023/12/15 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习笔记_字符串/静态static 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

字符串的特點(diǎn)

  • 字符串的內(nèi)容永不可變
  • 正是因?yàn)樽址豢筛淖?#xff0c;所以字符串是可以共享使用的
  • 字符串效果上相當(dāng)于是char[]字符數(shù)組,但是底層原理是byte[]字節(jié)數(shù)組
  • 創(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)

    public class Demo{public static void main(String[] args){//使用空參構(gòu)造String str1 = new String();System.out.println(“第1個(gè)字符串:” + str1);//根據(jù)字符數(shù)組創(chuàng)建字符串char[] charArray = {‘A’,’B’,’C’};String str2 = new String(charArray);System.out.println(“第2個(gè)字符串:”+str2);//根據(jù)字節(jié)數(shù)組創(chuàng)建字符串byte[] byteArray = {97,98,99};String str3 = new String(byteArray);//直接創(chuàng)建String str4 = “Hello”;System.out.println(“第4個(gè)字符串:” + str4);} }

    字符串的比較相關(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):

  • 任何對(duì)象都能用Object進(jìn)行接收
  • equals方法具有對(duì)稱性,a.equals(b)和b.equals(a)效果一樣
  • 如果比較雙方一個(gè)變量一個(gè)常量,推薦把常量字符串寫在前面
    推薦:“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 class Demo{//獲取字符串長(zhǎng)度int length = “adjghaurhuashf”.length();System.out.println(“字符串的長(zhǎng)度是:”+length)//拼接字符串String str1 = “Hello”;String str2 = “World”;String str3 = str1.concat(str2);System.out.println(str3);//HelloWorld,新的字符串//獲取指定索引位置的單個(gè)字符char ch = “Hello”.charAt(1);System.out.println(“在1號(hào)索引位置的字符是” + ch);//查找參數(shù)字符串在本來(lái)字符串當(dāng)中出現(xiàn)的第一次索引位置String original = “HelloWorld”;int index = original.indexOf(“l(fā)l0”);System.out.println(“第一次索引值是:” + index)//2System.out.println(“HelloWorld”.indexOf(“abc”));//-1 }

    字符串的截取方法

    public String substring(int index);
    截取從參數(shù)位置一直到字符串末尾,返回新字符串

    public String substring(int begin,int end);
    截取從begin開始,一直到end結(jié)束中間的字符串
    備注:[begin,end),包含左邊,不包含右邊

    public class Demo{public static void main(String[] args){String str1 = “HelloWorld”;Strint str2 = str1.substring(5);String str3 = str1.substring(4,7);System.out.println(str2);//worldSystem.out.println(str3);//oWo} }

    字符串的轉(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 static void main(String[] args){//轉(zhuǎn)換成為字符數(shù)組char[] chars = “Hello”.toCharArray();System.out.println(chars[0]);//HSystem.out.println(chars.length);//5//轉(zhuǎn)換為字節(jié)數(shù)組byte[] bytes = “abc”.getBytes();for(int i = 0; i < bytes.length; i++){System.out.println(bytes[i]);}String str1 = “How do you do?;String str2 = str1.replace(target:”o”,replacement:*);System.out.println(str1);//How do you do?System.out.println(str2);//H*w d* y*u d*?

    字符串的分割方法
    public String[] split(String regex)
    按照參數(shù)規(guī)則,將字符串切分成為若干部分
    注意事項(xiàng):
    split方法的參數(shù)其實(shí)是一個(gè)“正則表達(dá)式”
    如果按照英文句點(diǎn)“.”進(jìn)行切分,必須寫“\.”

    public class Demo{public static void main(String[] args){String str1 = “aaa,bbb,ccc”;String[] array1 = str1.split(reqex:,);for(int i = 0;i < array1.length;i++){System.out.println(array1[i]);}} }

    public class Student{private String name;private int age;static String room;public Student(){}public Student(String name,int age){this.name = name;this.age = age;}public String getName(){return name;} }

    如果一個(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):

  • 靜態(tài)不能直接訪問非靜態(tài)
    原因:因?yàn)閮?nèi)存當(dāng)中是先有靜態(tài)內(nèi)容,后有非靜態(tài)內(nèi)容
  • 靜態(tài)方法當(dāng)中不能用this
    原因:this代表當(dāng)前對(duì)象,通過誰(shuí)調(diào)用的方法,誰(shuí)就是當(dāng)前對(duì)象
  • public class Demo{public static void main(String[] args){MyClass obj = new MyClass();//首先創(chuàng)建對(duì)象,然后才能使用沒有static關(guān)鍵字的內(nèi)容obj.method();//對(duì)于靜態(tài)方法來(lái)說(shuō),可以通過對(duì)象名進(jìn)行調(diào)用,也可以直接通過類名稱來(lái)調(diào)用obj.methodStatic();//正確,不推薦,這種寫法在編譯之后會(huì)被javac翻譯成為“類名稱.靜態(tài)方法”MyClass.methodStatic();//正確推薦} } public class MyClass{int num;//成員變量static int numStatic;//靜態(tài)變量//成員方法public void method(){System.out.println(“這是一個(gè)成員方法”)//成員方法可以訪問成員變量System.out.println(num)//成員方法可以訪問靜態(tài)變量System.out.println(numStatic); }//靜態(tài)方法public static void methodStatic(){System.out,println(“這是一個(gè)靜態(tài)方法”)//靜態(tài)方法可以訪問靜態(tài)變量System.out.println(numStatic);//靜態(tài)不能直接訪問非靜態(tài)System,out,println(num);//錯(cuò)誤寫法//靜態(tài)方法中不能用this關(guān)鍵字System.out.println(this);//錯(cuò)誤寫法 } }

    靜態(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)行賦值

    public class Demo{public static void main(String[] args){Person one = new Person();Person two = new Person();} }

    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ù)值,sort默認(rèn)按照升序從小到大
  • 如果是字符串,sort默認(rèn)按照字母升序
  • 如果是自定義的類型,那么這個(gè)自定義的類需要有Comparable或者Comparator接口的支持。
  • public class Demo{public static void main(String[] args){int[] intArray = {10,20,30};//將int[]數(shù)組按照默認(rèn)格式變成字符串String intStr = Array.toString(intArray);System.out.println(intStr);int[] array1 = {2,1,3,10,6};Array.sort(array1);System.out.println(Array.toString(array1));//[1,2,3,6,10]String[] array2 = {“bbb”,”aaa”,”ccc”};Array.sort(array2);System.out.println(Array.toString(array2));//[aaa,bbb,ccc]} }

    數(shù)學(xué)工具類
    java.util.Math類是數(shù)學(xué)相關(guān)的工具類,里面提供了大量的靜態(tài)方法,完成與數(shù)學(xué)運(yùn)算相關(guān)的操作

    public static double abs(double num);//獲取絕對(duì)值,有多種重載 public static double ceil(double num);//向上取整 public static double floor(double num);//向下取整 public static long round(double num);//四舍五入

    總結(jié)

    以上是生活随笔為你收集整理的Java学习笔记_字符串/静态static的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。