五,常用類

bjynjj發表於2024-10-15

Java常用類Object,Scanner和Random筆記

Java類概述

  • 根類:
    • java.lang.Object是Java中所有類的根類或父類。
    • 所有Java類預設繼承自Object類,除非顯式地繼承其他類。

成員方法

  • toString():

    • 用途: 返回物件的字串表示形式。
    • 預設行為: 預設情況下,toString()方法返回物件的類名和雜湊碼(記憶體地址值)。
    • 重寫建議: 為了提供更有意義的資訊,通常需要重寫此方法。
  • equals():

    • 用途: 用於比較兩個物件是否相等。
    • 預設行為: 預設比較的是物件的引用(記憶體地址值)。
    • 重寫建議: 如果需要根據物件的內容來判斷相等性,應該重寫此方法。
  • clone():

    • 用途: 建立並返回物件的一個副本。
    • 預設行為: 預設實現是淺複製,即只複製物件的引用,不復制引用的物件。
    • 使用限制: 要使用clone()方法,類必須實現Cloneable介面,否則會丟擲CloneNotSupportedException
  • finalize():

    • 用途: 在垃圾回收器清除物件之前,由垃圾回收器呼叫,以執行任何必要的清理。
    • 注意: finalize()方法不保證一定會被呼叫,因此不推薦使用。

Scanner類

  • 概述:

    • Scanner類位於java.util包中,用於獲取使用者的輸入。
    • 可以解析基本型別和字串。
  • 獲取輸入內容:

    • nextLine(): 讀取一行輸入,包括空白字元,直到遇到回車。
    • nextInt(), nextDouble(), nextFloat()等: 分別用於讀取整數、雙精度浮點數、單精度浮點數等。

Random類

  • 概述:

    • Random類位於java.util包中,用於生成偽隨機數。
    • 可以生成各種型別的隨機數,如整數、布林值、浮點數等。
  • 生成隨機數:

    • nextInt(): 生成一個隨機整數。
    • nextDouble(): 生成一個[0.0, 1.0)範圍內的隨機雙精度浮點數。
    • nextBoolean(): 生成一個隨機布林值。

示例程式碼

import java.util.Scanner;
import java.util.Random;

public class CommonClassesExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        System.out.println("Enter your name:");
        String name = scanner.nextLine();
        System.out.println("Hello, " + name);

        int randomInt = random.nextInt(100); // 生成0到99之間的隨機整數
        double randomDouble = random.nextDouble(); // 生成一個隨機雙精度浮點數
        boolean randomBoolean = random.nextBoolean(); // 生成一個隨機布林值

        System.out.println("Random integer: " + randomInt);
        System.out.println("Random double: " + randomDouble);
        System.out.println("Random boolean: " + randomBoolean);

        scanner.close(); // 關閉scanner物件
    }
}

總結

  • Object類是Java所有類的根類,提供了基本的成員方法。
  • toString(), equals(), clone(), 和 finalize()Object類中的重要方法,它們在自定義類中通常需要被重寫或特別處理。
  • Scanner類用於獲取使用者輸入,支援多種資料型別的解析。
  • Random類用於生成隨機數,適用於需要隨機性的場景。

Java常用類String筆記

類定義

  • String類:
    - String是Java中用於表示文字序列的不可變類。
    - 它是Java標準庫中的一個核心類,用於處理字串資料。

構造方法

  • String():
    - 建立一個空的字串例項。

  • String(byte[] bytes):
    - 使用指定的位元組陣列建立一個新的字串。

  • String(byte[] bytes, int offset, int length):
    - 使用指定的位元組陣列的一部分建立一個新的字串。

  • String(char[] value):
    - 使用字元陣列建立一個新的字串。

  • String(char[] value, int offset, int count):
    - 使用字元陣列的一部分建立一個新的字串。

  • String(String original):
    - 建立一個新的字串,內容與原始字串相同。

成員方法

  • equals(Object obj):
    - 比較兩個字串的內容是否相等。

  • equalsIgnoreCase(String str):
    - 比較兩個字串的內容是否相等,忽略大小寫差異。

  • contains(String str):
    - 判斷一個字串是否包含另一個字串。

  • startsWith(String str):
    - 判斷一個字串是否以另一個字串開始。

  • endsWith(String str):
    - 判斷一個字串是否以另一個字串結束。

  • isEmpty():
    - 判斷字串是否為空。

  • length():
    - 返回字串的長度。

  • charAt(int index):
    - 返回字串中指定索引位置的字元。

  • indexOf(int ch):
    - 返回指定字元在字串中第一次出現的索引位置。

  • indexOf(String str):
    - 返回指定字串在當前字串中第一次出現的索引位置。

  • indexOf(String str, int fromIndex):
    - 返回指定字串在當前字串中從指定索引開始第一次出現的索引位置。

  • substring(int start):
    - 返回一個新的字串,它是當前字串的一個子字串。

  • substring(int start, int end):
    - 返回一個新的字串,它是當前字串從指定開始索引到結束索引的一個子字串。

轉換方法和其他功能

  • String類提供了許多其他有用的方法,例如:
    - trim():去除字串兩端的空白字元。
    - replace(char oldChar, char newChar):替換字串中所有出現的指定字元。
    - toLowerCase():將字串轉換為小寫。
    - toUpperCase():將字串轉換為大寫。
    - concat(String str):將指定字串連線到此字串的結尾。
    - split(String regex):根據指定的正規表示式分割字串。

示例程式碼

public class StringExample {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 使用構造方法
        String strFromBytes = new String("Hello".getBytes());
        
        // 使用成員方法
        boolean startsWithHello = str.startsWith("Hello");
        boolean endsWithExclamation = str.endsWith("!");
        String upperStr = str.toUpperCase();
        
        // 使用轉換方法
        String trimmedStr = str.trim();
        
        System.out.println("Original: " + str);
        System.out.println("Starts with 'Hello': " + startsWithHello);
        System.out.println("Ends with '!': " + endsWithExclamation);
        System.out.println("Uppercase: " + upperStr);
        System.out.println("Trimmed: " + trimmedStr);
    }
}

總結

  • String類是Java中用於處理文字資料的核心類,它提供了豐富的構造方法和成員方法。
  • 字串在Java中是不可變的,這意味著一旦建立,其內容不能被改變。
  • String類的方法支援各種字串操作,包括比較、查詢、替換、擷取和轉換等。
  • 瞭解String類的使用對於編寫有效的Java程式至關重要。

Java常用類StringBuffer筆記

StringBuffer 概述

  • 可變字元序列:
    - StringBuffer 是一個可變的字元序列,它提供了一個與 String 類似的物件,但可以修改其內容。
    - 它是執行緒安全的,適用於多執行緒環境下的字串操作。

構造方法

  • StringBuffer():
    - 建立一個預設大小的空 StringBuffer 物件。

  • StringBuffer(int capacity):
    - 建立一個具有指定容量的空 StringBuffer 物件。

  • StringBuffer(String str):
    - 建立一個 StringBuffer 物件,並將其初始化為包含指定字串的值。

成員方法

  • append(String str):
    - 將指定的字串追加到此序列。

  • insert(int offset, String str):
    - 在指定位置插入字串。

  • deleteCharAt(int index):
    - 刪除指定位置的字元。

  • delete(int start, int end):
    - 刪除從指定開始位置到結束位置的字元。

  • replace(int start, int end, String str):
    - 替換從指定開始位置到結束位置的字元序列。

  • reverse():
    - 將此字元序列用其反轉形式取代。

擷取功能

  • substring(int start):
    - 返回一個新的 StringBuffer,它包含此序列中從指定位置開始到末尾的字元。

  • substring(int start, int end):
    - 返回一個新的 StringBuffer,它包含此序列中從指定開始位置到指定結束位置的字元。

示例程式碼

public class StringBufferExample {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
         
         // 追加字串
         sb.append(" World");
         
         // 插入字串
         sb.insert(5, "Java ");
         
         // 刪除字元
         sb.deleteCharAt(5);
         
         // 替換字元序列
         sb.replace(5, 11, "Java");
         
         // 反轉字串
         sb.reverse();
         
         // 擷取字串
         String sub = sb.substring(0, 5);
         
         System.out.println(sb); // 輸出: Java
         System.out.println(sub); // 輸出: Java
     }
}

總結

  • StringBuffer 是一個可變的字元序列,適用於需要頻繁修改字串內容的場景。
  • 它提供了多種構造方法來建立具有不同初始容量和內容的 StringBuffer 物件。
  • StringBuffer 類包含一系列方法來追加、插入、刪除、替換和反轉字串序列。
  • 由於 StringBuffer 是執行緒安全的,它特別適合在多執行緒環境中使用。

陣列和Java包裝類筆記

類定義

  • 包裝類:
    - Java提供了包裝類(Wrapper classes)來將基本資料型別封裝為物件。
    - 這些類位於java.lang包中,每個基本資料型別都有一個對應的包裝類。

種類

  • byte:
    - Byte類包裝了基本型別byte

  • short:
    - Short類包裝了基本型別short

  • int:
    - Integer類包裝了基本型別int

  • long:
    - Long類包裝了基本型別long

  • float:
    - Float類包裝了基本型別float

  • double:
    - Double類包裝了基本型別double

  • boolean:
    - Boolean類包裝了基本型別boolean

  • char:
    - Character類包裝了基本型別char

陣列

  • toString(int[] a):
    - 將陣列轉換為字串表示形式。

  • sort(int[] a):
    - 對陣列進行升序排序。

  • binarySearch(int[] a, int key):
    - 使用二分搜尋演算法查詢指定值key在陣列a中的索引位置。

示例程式碼

import java.util.Arrays;

public class WrapperAndArrayExample {
    public static void main(String[] args) {
         int[] numbers = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3};
         
         // 將陣列轉換為字串
         String numbersStr = Arrays.toString(numbers);
         System.out.println("Array as String: " + numbersStr);
         
         // 對陣列進行排序
         Arrays.sort(numbers);
         System.out.println("Sorted Array: " + Arrays.toString(numbers));
         
         // 使用二分搜尋查詢元素
         int searchKey = 5;
         int index = Arrays.binarySearch(numbers, searchKey);
         System.out.println("Index of " + searchKey + ": " + index);
     }
}

總結

  • Java的包裝類允許基本資料型別被當作物件處理,提供了許多有用的方法和功能。
  • Arrays類提供了靜態方法來運算元組,包括轉換為字串、排序和搜尋。
  • toString方法將陣列轉換為易於閱讀的字串形式。
  • sort方法可以對陣列進行排序,而binarySearch方法則可以高效地在已排序陣列中查詢元素。

Java Date日期類和格式化筆記 - 第五部分

System 類

  • gc():
    - 請求虛擬機器進行垃圾回收。

  • exit(int status):
    - 終止當前執行的Java虛擬機器,status參數列示退出狀態。

  • currentTimeMillis():
    - 返回當前時間的毫秒數,從1970年1月1日00:00:00 UTC開始計算。

Date 類

  • 構造方法:
    - Date(): 建立一個Date物件,表示當前日期和時間。
    - Date(long date): 建立一個Date物件,表示自1970年1月1日00:00:00 UTC以來指定毫秒數的時間點。

  • 成員方法:
    - getTime(): 返回此Date物件表示的時間距離1970年1月1日00:00:00 UTC的毫秒數。
    - setTime(long time): 設定此Date物件表示的時間為自1970年1月1日00:00:00 UTC以來指定毫秒數的時間點。

SimpleDateFormat 類

  • 構造方法:
    - SimpleDateFormat(): 使用預設模式建立SimpleDateFormat物件。
    - SimpleDateFormat(String pattern): 使用指定的模式建立SimpleDateFormat物件。

  • 成員方法:
    - format(Date date): 將Date物件格式化為字串。
    - parse(String source): 將字串解析為Date物件。

  • 常見的格式:
    - yyyy-MM-dd HH:mm:ss: 標準的日期和時間格式。
    - yyyy年MM月dd日 HH時mm分ss秒: 中文格式的日期和時間。

示例程式碼

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
         // 獲取當前時間
          Date now = new Date();
          System.out.println("Current time: " + now);
          
          // 獲取當前時間的毫秒數
          long currentTimeMillis = System.currentTimeMillis();
          System.out.println("Current time in milliseconds: " + currentTimeMillis);
          
          // 使用SimpleDateFormat格式化日期
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          String formattedDate = sdf.format(now);
          System.out.println("Formatted date: " + formattedDate);
          
          // 解析日期字串
          try {
               String dateString = "2023-01-01 12:00:00";
               Date parsedDate = sdf.parse(dateString);
               System.out.println("Parsed date: " + parsedDate);
          } catch (Exception e) {
               e.printStackTrace();
          }
      }
}

總結

  • System類提供了與系統相關的方法,如垃圾回收、程式退出和獲取當前時間。
  • Date類用於表示日期和時間,提供了獲取和設定時間的方法。
  • SimpleDateFormat類用於日期和時間的格式化和解析,支援自定義日期時間格式。
  • 瞭解這些類和方法對於處理日期和時間資料非常重要。

相關文章