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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

字符串的特點

  • 字符串的內容永不可變
  • 正是因為字符串不可改變,所以字符串是可以共享使用的
  • 字符串效果上相當于是char[]字符數組,但是底層原理是byte[]字節數組
  • 創建字符串的常見3+1種方式
    三種構造方法:
    public String():創建一個空白字符串,不含有任何內容
    public String(char[] array):根據字符數組的內容,來創建對應的字符串
    public String(byte[] array):根據字節數組的內容,來創建對應的字符串

    一種直接創建
    String str = “Hello”;//右邊直接用雙引號

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

    字符串的比較相關方法

    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”));//不推薦,報錯,空指針異常NullPointerExceptionString strA = “Java”;String strB = “java”;System.out.println(strA.equals(strB));//false,嚴格區分大小寫System.out.println(strA.equalsIgnoreCase(strB));//true,忽略大小寫 }

    ==是進行對象的地址值比較,如果確實需要字符串內容的比較,可以使用兩個方法

    public boolean equals(Object obj):
    參數可以是任何對象,只有參數是一個字符串并且內容相同的才會給true
    否則返回false
    注意事項:

  • 任何對象都能用Object進行接收
  • equals方法具有對稱性,a.equals(b)和b.equals(a)效果一樣
  • 如果比較雙方一個變量一個常量,推薦把常量字符串寫在前面
    推薦:“abc”.equals(str) 不推薦: str.equals(“abc”)
  • public boolean equalsIgnoreCase(String str):忽略大小寫,進行內容比較

    字符串的獲取相關方法
    public int length(); 獲取字符串當中含有的字符串個數,拿到字符串的長度
    public String concat(String str):
    將當前字符串和參數字符串拼接成為返回值新的字符串
    public char charAt(int index):
    獲取指定索引位置的單個字符。(從索引0開始)
    public int indexOf(String str):
    查找參數字符串在本字符串當中首次出現的索引位置,如沒有,返回值為-1

    public class Demo{//獲取字符串長度int length = “adjghaurhuashf”.length();System.out.println(“字符串的長度是:”+length)//拼接字符串String str1 = “Hello”;String str2 = “World”;String str3 = str1.concat(str2);System.out.println(str3);//HelloWorld,新的字符串//獲取指定索引位置的單個字符char ch = “Hello”.charAt(1);System.out.println(“在1號索引位置的字符是” + ch);//查找參數字符串在本來字符串當中出現的第一次索引位置String original = “HelloWorld”;int index = original.indexOf(“ll0”);System.out.println(“第一次索引值是:” + index)//2System.out.println(“HelloWorld”.indexOf(“abc”));//-1 }

    字符串的截取方法

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

    public String substring(int begin,int end);
    截取從begin開始,一直到end結束中間的字符串
    備注:[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} }

    字符串的轉換相關方法

    String當中與轉換相關的常用方法:

    public char[] toCharArray();
    將當前字符串拆分成為字符數組作為返回值

    public byte[] getBytes();
    獲得當前字符串底層的字節數組

    public String replace(CharSequence oldString,CharSequence newString);
    將所有出現的老字符串替換成為新的字符串,返回替換之后的結果新字符串。

    public static void main(String[] args){//轉換成為字符數組char[] chars = “Hello”.toCharArray();System.out.println(chars[0]);//HSystem.out.println(chars.length);//5//轉換為字節數組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)
    按照參數規則,將字符串切分成為若干部分
    注意事項:
    split方法的參數其實是一個“正則表達式”
    如果按照英文句點“.”進行切分,必須寫“\.”

    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;} }

    如果一個成員變量使用了static關鍵字,那么這個變量不再屬于對象自己,而是屬于所在的類。多個對象共享同一份數據。

    public class Student{private int id;private String name;private int age;static String room;private static int idCounter = 0;//學號計數器,每當new了一個新對象的時候,計數器++public Student(){idCounter++;}public Student(String name,int age){this.name = name;this.age = age;this.id = ++idCounter;} }

    一旦使用static修飾成員方法,那么這就成為了靜態方法。靜態方法不屬于對象,而是屬于類。

    如果沒有static關鍵字,那么必須首先創建對象,然后通過對象才能使用它。
    如果有了static關鍵字,那么不需要創建對象,直接就能通過類名稱來使用它

    無論是成員變量,還是成員方法,那么必須首先創建對象,然后通過對象才能使用它
    靜態變量:類名稱.靜態變量
    靜態方法:類名稱.靜態方法()

    注意事項:

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

    靜態代碼塊
    靜態代碼塊的格式:

    public class 類名稱{
    static class 類名稱{
    //靜態代碼塊的內容
    }
    }

    特點:當第一次用到本類時,靜態代碼塊執行唯一的一次
    靜態內容總是優先于非靜態,所以靜態代碼塊比構造方法先執行

    靜態代碼塊的典型用途:
    用來一次性地對靜態成員變量進行賦值

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

    java.util.Arrays是一個與數組相關的工具類,里面提供了大量的靜態方法,用來實現數組的常見操作

    public static String toString(數組):將參數數組變成字符串(按照默認格式:[元素1,元素2,元素3 …])
    public static void sort(數組):按照默認升序(從小到大)對數組的元素進行排序

    備注:

  • 如果是數值,sort默認按照升序從小到大
  • 如果是字符串,sort默認按照字母升序
  • 如果是自定義的類型,那么這個自定義的類需要有Comparable或者Comparator接口的支持。
  • public class Demo{public static void main(String[] args){int[] intArray = {10,20,30};//將int[]數組按照默認格式變成字符串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]} }

    數學工具類
    java.util.Math類是數學相關的工具類,里面提供了大量的靜態方法,完成與數學運算相關的操作

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

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。