String split with parseInt in Java -


we asked build constructor stopwatch takes string in format of "##:##:###" , updates minutes, seconds , milliseconds (private instance variables) accordingly. example, "1:21:300" indicates 1 minute 21 seconds 300 milliseconds.

so trying use string.split() paired parseint update values. however, program not compile. constructor has correct syntax according eclipse, there wrong doing. have never used split nor parseint, using these 100% wrong. thank you.

    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;     } } 

p.s. junit test says "comparisonfailue: expected 0:00:000 20:10:008" when trying do:

s = new stopwatch("20:10:8"); assertequals(s.tostring(),"20:10:008"); 

as mentioned in other answers, lengths off 1 each each, index's using in if block off; eg. if length 1, index available 0, if length 2, index's available 0 , 1.

thus constructor looks like:

class stopwatch {     int minutes;     int seconds;     int milliseconds;      public stopwatch(string starttime) {         string[] timearray = starttime.split(":");          if (timearray.length == 3) {             this.minutes = integer.parseint(timearray[0]);             this.seconds = integer.parseint(timearray[1]);             this.milliseconds = integer.parseint(timearray[2]);         } else if (timearray.length == 2) {             this.minutes = 0;             this.seconds = integer.parseint(timearray[0]);             this.milliseconds = integer.parseint(timearray[1]);         } else if (timearray.length == 1) {             this.minutes = 0;             this.seconds = 0;             this.milliseconds = integer.parseint(timearray[0]);         } else {             this.minutes = 0;             this.seconds = 0;             this.milliseconds = 0;         }     } } 

Comments

Popular posts from this blog

user interface - Python attempting to create a simple gui, getting "AttributeError: 'MainMenu' object has no attribute 'intro_screen'" -

jquery - Common JavaScript snippet to share files on Google Drive, Dropbox, Box.net or SkyDrive -

Android Gson.fromJson error -