【问题标题】:java split string using ordered arrayjava使用有序数组拆分字符串
【发布时间】:2013-02-07 13:27:27
【问题描述】:

我很难为以下问题找到一个聪明的解决方案。我有文本字符串“exp”和一个带有章节数的预定义列表“章节”。我的目标是根据章节的预定义顺序拆分文本。我有这个正则表达式:

"(\n(\\d\\.?){1,}?\\S+)"

它与章节的编号相匹配,但是我如何检查它是否也与章节列表中的第一个元素匹配,如果编号与章节列表中的第二个元素匹配,我如何检查它是否与下一段匹配?

static String[] chapters;
chapters = new String[]{"1","1.1","1.2"};
String exp = 
"1 HeaderOne
1.1 HeaderOneOne
This is Text in the first Paragraph with the header 1.1.

1.2 HeaderOneTwo
This is Text in the second Paragraph.";

【问题讨论】:

  • 使用地图有什么问题吗?
  • 我不认为 regex 和 split 会帮助你。只需使用递归调用indexOf()
  • 我喜欢先确定章节的开头和结尾,然后在结尾拆分的想法。我会试试的。

标签: java regex arrays


【解决方案1】:

如果我理解正确,请执行以下操作。

  1. 将你的 exp 用 '\n' 分割并添加到列表中。
  2. 调用 Collections.sort(urSpilitLIst, urComparater);

在 urComparater 侧写你列表的排序逻辑。排序逻辑将根据您的章节列表中的顺序进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2016-08-04
    • 2014-05-16
    相关资源
    最近更新 更多