亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這里的“s:”是什么意思?

這里的“s:”是什么意思?

哆啦的時光機 2023-10-13 16:48:09
我正在嘗試使用 parseDouble() 將字符串值解析為雙精度類型。Parse double 接受我使用 getText() 傳遞給它的字符串。但這不起作用。然后我用雙引號將它連接起來?,F在正在工作。但我在這里有一個困惑。為什么它在沒有連接的情況下無法工作,盡管它接受一個字符串,并且 getText() 當然是獲取一個字符串。編寫該語句后,編譯器添加了“s:”。我也想知道這在這里意味著什么。我使用的是Android Studio 3.5.0.0我努力了:val1=Double.parseDouble(ioTxt.getText());但這行不通。正確的說法是:val1 = Double.parseDouble(s: ioTxt.getText()+"");ioTxt 是一個文本視圖。Val1 是 double 類型的變量。s: 是編譯器添加的東西,它不是上面寫的語法和語句的一部分如果寫 toString() 而不是串聯,上面的語句也能很好地工作。這是:val1 = Double.parseDouble(ioTxt.getText().toString());但我再次不明白為什么它需要 toString() 才能正常工作。我希望在不將其與引號或 toString() 連接的情況下進行工作。
查看完整描述

3 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

但我再次不明白為什么它需要 toString() 才能正常工作。

Double.parseDouble()接受類型為 的參數String。

getText()方法顯然返回除 a 之外的其他內容String,因此您需要進行轉換。

附加空字符串是強制String轉換的一種巧妙方法(+具有一個String參數的運算符隱式調用toString()另一個參數)。更喜歡顯式toString()調用。

's:' 只是 所使用的參數名稱parseDouble(),并由 IDE 作為提示顯示。它實際上并沒有修改您的源代碼。


查看完整回答
反對 回復 2023-10-13
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

android.widget.TextView.getText()方法被聲明為返回 aCharSequence而不是 a String。(參見javadoc。)

CharSequence接口是 的聲明接口之一String。(參見javadoc。)

Double.parseDouble需要一個String論點。(參見javadoc。)

因此,這里存在類型不匹配:

val1 = Double.parseDouble(ioTxt.getText());  // expects String
                                             // provided CharSequence

但這有效:

val1 = Double.parseDouble(ioTxt.getText().toString());

因為toString()正在將 轉換CharSequence為 a String。這是進行轉換的另一種方式:

val1 = Double.parseDouble(ioTxt.getText() + "");

但請注意,這不是有效的 Java 代碼:

val1 = Double.parseDouble(s: ioTxt.getText()+"");

很可能誤解了您的 IDE 所說的內容。


查看完整回答
反對 回復 2023-10-13
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

parseDouble接受 String 作為參數。

當您嘗試傳遞雙精度值而不是字符串時,會出現錯誤。

對于第二個問題,編譯器永遠不會向源文件中添加任何內容。您看到的“s:”是您正在使用的 IDE 的一種方式,用于顯示您在調用方法時設置的參數。


查看完整回答
反對 回復 2023-10-13
  • 3 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號