java - 如何将字符串拆分为后缀数组?

标签 java arrays search phrase

将字符串拆分为其后缀数组的最有效方法是什么?

假设您有字符串“The weather is nice”,我想生成一个这样的后缀数组:

[0] = "nice"

[1] = "is nice"

[2] = "weather is nice"

[3] = "the weather is nice"

我可以从头到尾访问其标记(单词)上的迭代器形式的字符串。

最佳答案

使用 split 在空格上拆分数组,然后从后到前遍历生成的标记,采用前一个后缀,并将当前标记添加到它的前面。如果没有前置后缀,则使用空字符串:

String str = "quick brown fox jumps over the lazy dog";
List<String> res = new ArrayList<String>();
String last = null;
String[] tok = str.split(" ");
for (int i = tok.length-1 ; i >= 0 ; i--) {
    if (last == null) {
        last = tok[i];
    } else {
        last = tok[i] + " " + last;
    }
    res.add(last);
}
for (String s : res) {
    System.out.println(s);
}

这打印

dog
lazy dog
the lazy dog
over the lazy dog
jumps over the lazy dog
fox jumps over the lazy dog
brown fox jumps over the lazy dog
quick brown fox jumps over the lazy dog

Link to a demo on ideone.

关于java - 如何将字符串拆分为后缀数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092630/

相关文章:

PHP 无需爬行 Google 即可获取网站的 Google 排名

java - 将高度模板化的 C++ 代码迁移到 Java

java - 如果 Controller 方法返回 ResponseEntity 如何使用 Spring 重定向

javascript - 用于构造查询的 JSON 数据的有效方法

javascript - 将 javaScript 数组添加到 HTML 页面?

java - 检查对象数组以查看每个对象是否共享一个值,然后执行某些操作 (Java)

java - 在java数组列表中搜索而不返回值

java - 在 Java 中使用 RegSvr32 注册 DLL - 如何隐藏警报出现

java - Java 中的工具提示管理器

php - 显示 cookie 数组中的 3 个值?