SORU
23 HAZİRAN 2010, ÇARŞAMBA


Özel kasa için en iyi Döngü Deyim son öğe

Ben koşuya bu durum bir çok kez yaparken basit metin işleme ve baskı tablolar Neredeyim döngü içinde bir toplama ve istediğim için özel bir durum son öğe (örneğin her normal unsuru olacak virgülle ayrılmış hariç son durum).

Yok kod çoğaltmak ya da bir itişip, başka döngü gerektirmeyen bazı en iyi uygulama deyim ya da zarif formu.

Örneğin virgülle ayrılmış bir liste yazdırmak istiyorum bu dizeleri bir listesi var. (yapmak çözüm zaten listede 2 veya daha fazla öğe vardır kabul eder, ancak aksi takdirde koşullu döngü için daha doğru) kadar kötü olurdu.

= ("", "", "") bat . kedi köpek ör Listesi

Yazdırmak istiyorum "[köpek, kedi, yarasa]"

2 yöntem sunuyorum

  1. Koşullu döngü için

    public static String forLoopConditional(String[] items) {
    
    
    String itemOutput = "[";
    
    
    for (int i = 0; i < items.length; i  ) {
        // Check if we're not at the last element
        if (i < (items.length - 1)) {
            itemOutput  = items[i]   ", ";
        } else {
            // last element
            itemOutput  = items[i];
        }
    }
    itemOutput  = "]";
    
    
    return itemOutput;
     }
    
  2. döngü astarlama sırasında döngü

    public static String doWhileLoopPrime(String[] items) {
    String itemOutput = "[";
    int i = 0;
    
    
    itemOutput  = items[i  ];
    if (i < (items.length)) {
        do {
            itemOutput  = ", "   items[i  ];
        } while (i < items.length);
    }
    itemOutput  = "]";
    
    
    return itemOutput;
    }
    

    Test sınıf:

    public static void main(String[] args) {
        String[] items = { "dog", "cat", "bat" };
    
    
    
    System.out.println(forLoopConditional(items));
    System.out.println(doWhileLoopPrime(items));
    
    }

Java AbstractCollection sınıfında aşağıdaki uygulama (tüm kenar durumda hata denetimi, ama kötü değil içerdiği için küçük bir ayrıntı).

public String toString() {
    Iterator<E> i = iterator();
if (! i.hasNext())
    return "[]";

StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
    E e = i.next();
    sb.append(e == this ? "(this Collection)" : e);
    if (! i.hasNext())
    return sb.append(']').toString();
    sb.append(", ");
}
}

CEVAP
23 HAZİRAN 2010, ÇARŞAMBA


Ben genellikle bu gibi yazmak:

static String commaSeparated(String[] items) {
    StringBuilder sb = new StringBuilder();
    String sep = "";
    for (String item: items) {
        sb.append(sep);
        sb.append(item);
        sep = ",";
    }
    return sb.toString();
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BurnedInDotCom

    BurnedInDotC

    3 NİSAN 2010
  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • skiesofblack.net

    skiesofblack

    14 HAZİRAN 2009