2016-03-24 8 views
0

説明は空の文字列で始まり時間をテストし、文字列に0を追加し、その後に1桁の数字があるか、または2桁の時間を追加しますさもないと。あなたのテストに最終変数MIN_2DIGITSを使用し、作成する文字列を追加するためにのみ+ =演算子を使用してください....コードは、ここではのコメントコードに行く必要があります。方法その##で入力された時間、分、秒:##:##形式toStringを使用したゼロ/書式設定の追加

私はこれまでのところ、これを試してみましたが、ユーザが時間、分、秒

に入るときにのみ出力00:00:00
public class Clock 
{ 
    private static final byte DEFAULT_HOUR = 0, 
          DEFAULT_MIN = 0, 
          DEFAULT_SEC = 0, 
          MAX_HOURS = 24, 
          MAX_MINUTES = 60, 
          MAX_SECONDS = 60; 

    // ------------------ 
    // Instance variables 
    // ------------------ 

private byte seconds, 
       minutes, 
       hours; 

    public Clock (byte hours , byte minutes , byte seconds ) 
    { 
    setTime(hours, minutes, seconds); 
    } 

    public Clock ( ) 
    { 
    setTime(DEFAULT_HOUR, DEFAULT_MIN, DEFAULT_SEC); 
    } 


//---------- 
// Version 2 
//---------- 

    public String toString() 

    { 

    final byte MIN_2DIGITS = 10; 

    String str = ""; 






// CODE GOES HERE, what i have below didn't work 


public String toString() 

    { 

    final byte MIN_2DIGITS = 10; 

    String str = ""; 



      // my input 

      if (hours < MIN_2DIGITS) 
      { 
      str += "0" + hours + ":" ; 
      } 
      else 
      str += hours; 
      if (minutes < MIN_2DIGITS) 
      { 
      str += "0" + minutes + ":" ; 
      } 
      else 
      str += minutes; 
      if (seconds < MIN_2DIGITS) 
      { 
      str += "0" + seconds; 
      } 
      else 
      str += seconds; 



     //end of my input 

     return str; 

     } 







    return str; 

    } 


} // End of class definition 
+0

ホエールの完全なホバークラフト – Beeeee

答えて

0

あなたはほとんどそこにいました。

次のメソッドを追加する必要があります。

public void setTime(byte hours, byte minutes, byte seconds) { 
    this.hours = hours; 
    this.minutes = minutes; 
    this.seconds = seconds; 
} 

以下の方法に変更してください。

public String toString() 
{ 
    final byte MIN_2DIGITS = 10; 
    String str = ""; 
    // my input 
    if (hours < MIN_2DIGITS) { 
     str += "0" + hours + ":"; 
    } else 
     str += hours + ":"; 
    if (minutes < MIN_2DIGITS) { 
     str += "0" + minutes + ":"; 
    } else 
     str += minutes + ":"; 
    if (seconds < MIN_2DIGITS) { 
     str += "0" + seconds; 
    } else 
     str += seconds; 
    // end of my input 
    return str; 
} 

コードをテストする方法。

public static void main(String[] args) { 
    Clock clock = new Clock((byte) 9, (byte) 10, (byte) 35); 
    System.out.println(clock); 
} 
+0

あなたはこれをなぜ説明することができますか?それは動作させた?任意のアドバイスは素晴らしいだろう – Beeeee

+0

@Brentあなたが投稿したコードのバージョンでは、我々は、時間、秒、分のパラメータを初期化していません。これは、メソッドpublic void setTime(.....)を追加することで修正されました。また、時間の書式設定に問題がありました。これはtoString()メソッドで修正されました。 – alphablue

関連する問題