Генерация HTML списка определений в многомерном массиве Java
Всем привет!
В данный момент я решаю следующую задачу:
нужно реализовать публичный статический метод buildDefinitionList(), который генерирует HTML список определений (теги <dl>, <dt> и <dd>) и возвращает получившуюся строку. При отсутствии элементов в массиве метод возвращает пустую строку.
Метод принимает на вход список определения в виде двумерного массива:
String[][] definitions = {
{"definition1", "description1"},
{"definition2", "description2"},
};
То есть каждый элемент входного массива сам является массивом, содержащим два элемента: термин и его определение.
String[][] definitions = {
{"Блямба", "Выпуклость, утолщения на поверхности чего-либо"},
{"Бобр", "Животное из отряда грызунов"},
};
HtmlBuilder.buildDefinitionList(definitions);
// "<dl><dt>Блямба</dt><dd>Выпуклость, утолщение на поверхности чего-либо</dd><dt>Бобр</dt><dd>Животное из отряда грызунов</dd></dl>";
Мой код:
package com.arrays.problem6;
public class HtmlBuilder {
public static void main(String[] args) {
}
public static String buildDefinitionList(String[][] definitions){
var result = new StringBuilder();
result.append("<dl><dt>");
for (var item : definitions) {
// append дополняет строку
result.append("<dd>");
// result.append("<dd>");
result.append(item);
result.append("</dl></dd>");
}
result.append("</dl></dd>");
// toString собирает все части в одну строку
System.out.println(result);
return result.toString();
}
}
Программа работает в правильном направлении,но нужен вывод типа <dl><dt>key</dt><dd>value</dd><dt>key2</dt><dd>value2</dd></dl>, а у меня получается <dl><dt><dd>[Ljava.lang.String;@59ad9541</dl></dd><dd>[Ljava.lang.String;@42d1de3c</dl></dd></dd></dl>. Помогите найти мне ошибку, пожалуйста
Ответы (1 шт):
Все-таки пришлось разобраться самостоятельно.Вложенные циклы мне не потребовались.Все дело в создании двух дополнительных строковых переменных,которые записываются в двумерный массив.Ну и еще потребовалась та самая проверка на отсутствие элементов в массиве.
public class HtmlBuilder {
public static void main(String[] args){
}
public static String buildDefinitionList(String[][] definitions){
if(definitions.length==0){
return "";
}
StringBuilder result = new StringBuilder();
result.append("<dl>");
for(String[] definition : definitions){
String name=definition[0];
String description=definition[1];
result.append("<dt>");
result.append(name);
result.append("</dt>");
result.append("<dd>");
result.append(description);
result.append("</dd>");
}
result.append("</dl>");
return result.toString();
}
}