2015-11-28 106 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代码约定:变量名称以小写字母开头。)

相关问题