private String twoDigits(int value) {
String result = "";
{
if ((mMinute >= 0) && (mMinute <= 9) && (mSecond >= 0) && (mSecond <= 9)) {
tempmin = ("0" + mMinute );
tempsec = ("0" + mSecond );
} else
tempmin = (mMinute + "");
tempsec = (mSecond + " ");
return tempin+tempsec;
这只是我正在寻找的输出的两倍,我想知道问题是否与return语句或实际方法有关。
我需要回调这个方法,twoDigits(mMinute)+“:”+ twoDigits(mSecond)来获取显示时间的代码,但不是能够显示10:09:08我继续显示10 :0908:0908
我想知道如何修复我的代码。
答案 0 :(得分:2)
由于代码中存在很多小错误,我建议采用略有不同的方法。不确定这种方法是否有效,我认为是Java,但请试一试:
private String twoDigits(int value)
{
return value <= 9 ? "0" + value : value;
}
这实际上是if / else的缩写。返回以下内容:如果值&lt; = 9,则在值之前添加零,否则为值。
如果收到负值的风险,您可以添加:
return (value >= 0 && value <= 9) ? "0" + value : value;
首先,保罗对 else 之后的{}的评论包含两行。然后,您实际上并未使用函数接收的值,而是使用某些全局变量(mMinute和mSecond)。您创建但从不使用结果。此外,你的if语句说如果mMinute和mSecond都在0到9之间那么两者都应该是固定的。由于您应该使用 value ,您只需检查该变量的范围并相应地进行编辑。在行tempsec =(mSecond +“”);你添加一个空格..错误?最后,你在返回行上拼错了 tempmin 。
祝你好运。答案 1 :(得分:0)
请注意,您的方法有一个value
参数。您应该使用它而不是直接访问类中的字段。也许你可以考虑twoDigits()
方法的目的。在我看来,如果输入只是一个数字,它应该采用int
值并用前导零填充它。请注意,我在上一句中的描述不是指代表分钟和秒的成员变量;它只是指输入值。