2015-11-28 111 views
-1

我已經寫了下面一段應該打印時間格式爲hh:ss:mm。 嘗試連接一個int時,我得到以下錯誤,但只有最後一條語句,這是奇怪的。 (_hour & _minute & _second方法返回一個int)JAVA:不兼容的類型:int不能轉換爲java.lang.String

public String toString() 
{ 
    String TimeString = null; 

    if(this._hour < 10){ 
     TimeString = "0" + this._hour + ":"; 
    } 
    else{ 
     TimeString = this._hour + ":"; 
    } 
    if(this._minute < 10){ 
     TimeString.concat("0" + this._minute + ":"); 
    } 
    else{ 
     TimeString.concat(this._minute + ":"); 
    } 
    if(this._second < 10){ 
     TimeString.concat("0" + this._second); 
    } 
    else{ 
     TimeString.concat(this._second); 
    } 

    return TimeString; 
} 

我得到 「不兼容類型:INT不能轉換爲java.lang.String」 剛剛過去statemenet(!):「TimeString.concat(此。_第二)」。 這是怎麼回事?爲什麼只有在所有其他人都可以通過的最後一個聲明纔會發生?

感謝

回答

0

至於其他地方要轉換輸入字符串第一即

TimeString.concat("0" + this._second); 

但在TimeString.concat(this._second); this._second是不是默認字符串。您需要先將其轉換爲字符串。一種方法是

"" + this._second 
1

如果你建立這樣一個字符串,使用StringBuilder,而不是串聯的;它的效率更高,並且更清晰。特別是,它的append方法是爲任何類型定義的,而不僅僅是其他字符串。

(並使用Java代碼約定:變量名稱以小寫字母開頭。)

相關問題