簡體   English   中英

Java - 計算字符串長度

[英]Java - calculating String length

在初始化數組時,Java 會詢問該數組的長度。 否則我們會得到編譯時錯誤。

char[] b = new char[3];

這里3是數組b的長度。我們可以從b.length得到它

當我們看到 String 類的構造函數時

 public String(String original) {
    this.value = original.value;
    this.hash = original.hash;
}

String 構造函數中的原始參數來自哪里? 那怎么得到它的長度?

在字符串長度方法中

    public int length() {
    return value.length;
}

我的問題 #1

我們如何在沒有初始化數組的情況下獲得長度(因為構造函數內部沒有數組初始化)?

我的問題 #2

String s = new String("MyString");

在上面的行中,我正在為String類創建實例,當我檢查String類的構造函數時,我遇到了以下構造函數代碼

 public String(String original) {
    this.value = original.value;
    this.hash = original.hash;
}

我的疑問是在構造函數中他們如何將 String 類本身作為參數? 從哪里加載?

下面的語句構造一個String實例s在這種情況下,“字符串文字”出"MyString"

String s = new String("MyString");

它等效且不太可取

String s = "MyString";

根據官方文檔

  1. 字符串文字是對 String 類實例的引用(第 4.3.1 節,第 4.3.3 節)。
  2. 字符串字面量總是指類 String 的同一個實例(實習)

特別是關於"MyString"的長度,編譯器會在解析源代碼時計算文字中的字符數,並用適當的長度初始化該字符串中的char[] 然后它將創建一個具有相同長度的新String s

作為旁注,您可以(出於類似原因)創建一個數組而無需自己指定長度。 編譯器將計算元素的數量並相應地設置長度 例如

char[] b = {'a', 'b', 'c'};

Java 允許提供您正在編寫構造函數或其他方法的同一類對象的參數。

 public String(String original) {
    this.value = original.value;
    this.hash = original.hash;
}

String 類從 hash 中獲取長度,因為 hash 有一個唯一的代碼,它告訴你有多少個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM