Ваш первый кодовый блок эквивалентен
while (in.findInLine("00-01") == null) {
in.nextLine();
}
in.nextLine();
for (int j = 0; j < data[0].length; j++)
{
data[0][j] = Integer.parseInt(in.findInLine("[0-9]+|-"));
in.nextLine();
}
Без дополнительного контекста, что вы хотите сделать, мы не исправим ваш код.
Для расширения немного на ответе awhite, тег является типом значения Почему? Поскольку не имеет смысла иметь
var tag1 = new Tag("DDD");
var tag2 = new Tag("DDD");
Assert.AreNotEqual(tag1, tag2);
ясно они должны быть равны друг другу, потому что тег не имеет никаких идентификационных данных за исключением своей маркировки. Вопросами и ответами, с другой стороны, являются определенно объекты
Просто некоторые дополнительные соображения: Теги могут быть нормализованы, "DDD" должен быть равен "ddd" и "DdD", и в большинстве систем тега, пробелы заменяются "_" символы нижнего подчеркивания. Также я предполагаю, что создатель будет прослежен для системы значка.