我写过以下作品,打印时间格式为hh:ss:mm。 尝试连接int时出现以下错误,但仅针对最后一个语句,这很奇怪。 (_hour& _minute& _second方法返回一个int)
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;
}
我得到&#34;不兼容的类型:int无法转换为java.lang.String&#34;只是(!)为最后一个statemenet:&#34; TimeString.concat(this._second)&#34;。 为什么会这样?为什么这种情况只发生在所有其他通过的最后一个声明上?
由于
答案 0 :(得分:1)
如果您正在构建这样的字符串,请使用StringBuilder
而不是连接;它的效率更高,更清晰一些。特别是,它的append
方法是为任何类型定义的,而不仅仅是其他字符串。
(并使用Java代码约定:变量名以小写字母开头。)
答案 1 :(得分:0)
与其他地方一样,您首先将输入转换为字符串,即
TimeString.concat("0" + this._second);
但是在TimeString.concat(this._second);
这个._second默认情况下不是字符串。您需要先将其转换为字符串。一种方法是
"" + this._second