Вопрос

Если у меня есть ArrayList of Type Integer, содержащий числа, такие как 1,3,4,9,10 и т. Д. Как я могу отобразить те на Jlabel, не сумму, а все числа в последовательности.

Таким образом, Jlabel отобразит, в данном случае: 134910

Спасибо заранее за любую помощь.

РЕДАКТИРОВАТЬ: Спасибо всем, конечно, я должен был подумать о добавлении. В любом случае, спасибо всем!

Это было полезно?

Решение

Как это:

StringBuilder sb = new StringBuilder();
for (Integer i : list) {
    sb.append(i == null ? "" : i.toString());
}
lbl.setText(sb.toString());

Другие советы

private static String fromListToString(List<Integer> input) {
    StringBuilder sb = new StringBuilder();
    for (Integer num : input) {
        sb.append(num);
    }
    return sb.toString();
}

public static void main(String[] args) {
    JFrame f = new JFrame();
    List<Integer> list = new ArrayList<Integer>();
    list.add(1);
    list.add(3);
    list.add(4);
    list.add(9);
    list.add(10);
    f.getContentPane().add(new JLabel(fromListToString(list)));
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
}

Пример:

    List<Integer> list = Arrays.asList( 1, 3, 5, 7 );

    StringBuilder joined = new StringBuilder();
    for (Integer number : list) {
        joined.append( number );
    }
    new JLabel().setText( joined.toString() );

Apache Commons Lang на помощь (снова) с Stringutils.join () (в разных ароматах).

Вы начинаете с пустой строки (или StringBuilder). Затем вы выполняете перечисление через элементы списка, добавляя каждый элемент в строку. Затем вы устанавливаете строку в качестве текста Jlabel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top