2016-03-24 36 views
0

ile bir sıfır/biçimlendirme ekleme Talimatlar .... boş bir dizeyle başlayarak saatleri test eder ve dizeye bir sıfır ekler, ardından saatlerde bir rakam olduğunda veya iki basamaklı saati ekler aksi takdirde. Testleriniz için son değişkeni MIN_2DIGITS kullanın ve oluşturduğunuz dizgiyi eklemek için sadece + = operatörünü kullanın .... kod, yorum koduna gitmek zorundadır, buraya en yakın alt köşeye gider, özellikle zamanı biçimlendirmem gerekiyor Girilen saatler, dakikalar, saniye cinsinden girilen yol sayısı: ##: ##: ## formattoString

Şimdiye kadar bunu denedim ancak bir kullanıcı saat, dakika ve saniye girdiğinde sadece 00:00:00 çıkarıyor

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

HoverCraft yulaf dolusu tüyleri yine – Beeeee

cevap

0

Neredeyse oradaydınız.

Aşağıdaki yöntemin eklenmesi gerekir.

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

Aşağıdaki yöntemde değişiklikler.

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

Kodu sınama yöntemi.

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

bunun nedenini açıklayabilir misiniz. işe yaradı mı? Herhangi bir tavsiye harika olurdu – Beeeee

+0

@Brent Gönderdiğiniz kodun sürümünde, parametreler saatlerini, saniyeleri, dakikaları başlatmıyoruz. Bu, public void setTime (.....) yöntemiyle eklenmiştir. Ayrıca zamanın biçimlendirilmesinde sorun vardı. Bu toString() yönteminde giderilmiştir. – alphablue