首页 > 解决方案 > 在java中以不同的方式分解单词

问题描述

我想以不同的方式创建带有字符串的单词,如下所示。我不确定如何最好地做到这一点

输入:保罗·托马斯·安德森

输出:保罗·托马斯·安德森、P·托马斯·安德森、T·安德森、保罗·T·安德森、保罗·托马斯·A、T·安德森、保罗·A、帕·安德森……

在java中执行此操作的最佳和通用方法是什么?

标签: javastringalgorithm

解决方案


理想情况下,您希望展示到目前为止您已经尝试过的内容。话虽如此,您编写的要求基本上如下:

  • 取一个句子并将其分解为每个单词
  • 生成一个由每个单词和/或每个单词的前 k 个字母组合而成的答案元组。

实际上,当您编写 时Paul Thomas Anderson,您正在处理特殊情况 where k = length(word)

您的答案可能不会特定于 Java,我认为您可能会在软件工程 Stack Exchange 或 Programming Stack Exchange 站点中得到更好的服务。

从以下内容开始:

List<List<String>>() result = new ArrayList<List<String>>();
String[] words = seed.split(" "); // this will give you each word
for (String word : words){
   for (int i = 1; i < word.length(); i++){
     String part = word.substring(0,i); // make sure length-1 is actually the right max
     // Do the saving here - you need a good structure - not sure my List of List cuts it
   }
}

实际上,您应该参考这篇文章来了解您的集合的笛卡尔积。这将大大简化您需要做的事情。


推荐阅读