我们被要求为 Stopwatch 构建一个构造函数,该构造函数接受格式为“##:##:###”的字符串并相应地更新分钟、秒和毫秒(私有实例变量)。例如,"1:21:300"
表示 1 分 21 秒 300 毫秒。
所以我尝试使用string.split()
配对parseInt
来更新值。但是,该程序不会编译。根据 eclipse,我的构造函数具有正确的语法,但是我正在做的事情有问题。我从来没有真正使用过split
nor parseInt
,所以我可能会 100% 错误地使用这些。谢谢你。
public StopWatch(String startTime){
String [] timeArray = startTime.split(":");
if(timeArray.length == 2){
this.minutes = Integer.parseInt(timeArray[0]);
this.seconds = Integer.parseInt(timeArray[1]);
this.milliseconds = Integer.parseInt(timeArray[2]);
}
else if(timeArray.length == 1){
this.minutes = 0;
this.seconds = Integer.parseInt(timeArray[1]);
this.milliseconds = Integer.parseInt(timeArray[2]);
}
else if(timeArray.length == 0){
this.minutes = 0;
this.seconds = 0;
this.milliseconds = Integer.parseInt(timeArray[2]);
}
else{
this.minutes = 0;
this.seconds = 0;
this.milliseconds = 0;
}
}
PS Junit 测试在尝试执行以下操作时显示“ComparisonFailue:预期 0:00:000 但为 20:10:008”:
s = new StopWatch("20:10:8");
assertEquals(s.toString(),"20:10:008");