【发布时间】:2012-08-31 17:32:21
【问题描述】:
据我所知,您无法在 Java 中创建具有动态名称的变量,因此我将解释该问题以查看是否有替代方法。我的问题是我必须解析一个包含英文法律的长文本,它有一个层次结构:
这样划分:
书籍
----章节
--------文章 或
书籍
----标题
--------章节
----------文章 或
书籍
----标题
--------章节
-------------章节
-----------------文章
正如您所说,它取决于情况,结构必须有所不同。信息必须取自如下文件:
书 1:书名 标题 1:标题一的名称 第 1 章:第 1 章的名称 第 1 条:第 1 条的名称 第 2 条:第 2 条的名称 第2章:第2章的名称 第 1 节:第 1 节的名称 第 3 条:第 3 条的名称 标题 2:... 第1章: ... ... 书2:... …… 第 3 册
所以你明白了,文本可能包含随机的分类,它不像首先是所有章节,然后是所有文章等等。
为此建议的实现是:
public class Book {
private int id;
private List<Chapter> chapters;
private List<Title> titles;
// getters/setters/constructor
}
public class Chapter {
private int id;
private List<Section> section;
private List<Article> articles;
// getters/setters/constructor
}
public class Title {
private int id;
private List<Chapter> chapters;
// getters/setters/constructor
}
public class Section {
private int id;
private List<Article> articles;
// getters/setters/constructor
}
问题是列表必须以动态方式创建。这是当解析器说我需要书号 n 中的新章节列表时,我必须创建它。
我该怎么做?
提前致谢
【问题讨论】:
-
我认为 map 可能是比创建动态变量更好的选择。
-
好的,我听说过这个解决方案,但我不知道地图是如何工作的。这里重要的是,我需要知道元素是一本书还是它应该在结构中的什么位置和位置(在哪本书中,在哪一章等等)。我必须制作一个菜单,例如:选择一本书以及根据书的章节或标题列表,然后选择等等,直到我将在其中显示文章文本的文章。感谢您的回答。
标签: java class variables dynamic linked-list