我正在解決一個關于 leetcode 的問題,遇到了我難以理解的代碼,并通過互聯網搜索了答案,但沒有找到想要的答案
問題是 leetcode 上的 Shuffle String。
所以,這里是代碼!
class Solution {
public String restoreString(String s, int[] indices) {
char[] charArray = new char[indices.length];
for(int i=0; i<indices.length; i ){
charArray[indices[i]] = s.charAt(i);
}
return new String(charArray);
}
}
根據我的說法,回傳 new String(charArray)的最后一條陳述句是 String 建構式,我不知道可能是我錯了,但如果我是對的,我們可以將建構式回傳到期望 String DataType 的函式
我想讓一些人理解這個概念,請任何人解釋我。如果有人提出一些建議,我很想有學習材料的鏈接
積極期待,
謝謝。
uj5u.com熱心網友回復:
您不是“回傳建構式”。您正在構造一個字串并回傳它。
這個:
return new String(charArray);
可以寫成如下,引入一個多余的變數只是為了說明這一點:
String r = new String(charArray);
return r;
在這個重新表述中,重要的是不要認為您正在“回傳一個變數”,您正在回傳一個變數的值。
同樣,在您的原始代碼中,您所謂的“回傳建構式”是回傳從建構式回傳的值(對新構造的字串的參考)。
uj5u.com熱心網友回復:
)
新 String 從 char-Array 創建一個新的 String 物件。所以我們創建字串然后回傳它。您可以將此語法解釋為只是連續執行這兩項操作。或者,您也可以先宣告變數,然后使用 new String(charArray) 初始化變數,然后回傳新 String,但這是不必要的。
我希望我能幫上忙!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496471.html
