java - 如何提取基本 URI?

标签 java

我有一堆 URI(字符串),如下所示:

METRICS.COMPANY.APP1
METRICS.COMPANY.APP1.TOTAL.90DAY
METRICS.COMPANY.APP1.TOTAL.WEEKLY
METRICS.COMPANY.APP1.TOTAL.MONTHLY
METRICS.COMPANY.APP2
METRICS.COMPANY.APP2.TOTAL.90DAY
METRICS.COMPANY.APP2.TOTAL.WEEKLY
METRICS.COMPANY.APP2.TOTAL.MONTHLY
METRICS.BUSINESS.DECISIONS
METRICS.BUSINESS.DECISIONS.MONTHLY
METRICS.BUSINESS.DECISIONS.ANNUALLY
METRICS.EMPLOYEE
METRICS.EMPLOYEE.WEEKLY

有没有办法可以从每组相似的 URI 中提取唯一的“基本”URI?也就是说,我只感兴趣:

METRICS.COMPANY.APP1
METRICS.COMPANY.APP2
METRICS.BUSINESS.DECISIONS
METRICS.EMPLOYEE

最佳答案

假设您的数据将被排序,就像在您的示例中一样,因此假设基数总是出现在其子级之前,这就是我的想法:

private static Collection<String> extractBases(String[] nodes) {
    Arrays.sort(nodes); // optional, to ensure order

    Deque<String> bases = new ArrayDeque<>();
    bases.addFirst(nodes[0]);

    for (int i = 1; i < nodes.length; i++) {
        if (!nodes[i].contains(bases.peekFirst())) { // if it's not a child
            bases.addFirst(nodes[i]);
        }
    }

    return bases;
}

您可以在此处使用您的输入查看演示:http://ideone.com/sjEfvc

关于java - 如何提取基本 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061564/

相关文章:

java - 安卓/Java : trim cut the latitude for map view

java - 使用信号量的变量结果

java - 在 DynamoDB 中自动填充 Epoch 格式的时间

java - Swt 布局 : to able to layout the ocntrol

java - 在Java中,为什么我们需要一个对象来调用同一个类的main函数中的函数,但没有对象来调用非main函数中的其他函数?

java - Java 空指针中的对象引用

java - 是否必须将引用设置为 null 才能使垃圾收集工作

java - 逐行图像 Swing

java - 反序列化包含时间戳的对象

java - 带有特殊字符的selenium webdriver调用链接