Java 字符串与所有同义词的组合

Java 字符串与所有同义词的组合,java,recursion,Java,Recursion,我有一个字符串,其中一些单词有一些同义词 e、 g.字符串:A B C D 具有同义词的词语包括: A=>AX,AY,AZ B=>BX,由 C=>CX,CY,CZ 我必须找到这些同义词的不同字符串组合 上述字符串的输出应为: AX、BX、CX AX,BX,CY AX,BX,CZ AX,BY,CX 斧头,斧头,斧头 AX,BY,CZ 从A键的AY开始重复相同的过程,依此类推 我有一个包含地图列表的同义词列表。每个映射都包含一个关键字(a)和一个值(该单词的同义词列表) e、 g.[{A=[AX,

我有一个字符串,其中一些单词有一些同义词

e、 g.字符串:A B C D

具有同义词的词语包括:

A=>AX,AY,AZ

B=>BX,由

C=>CX,CY,CZ

我必须找到这些同义词的不同字符串组合

上述字符串的输出应为:

AX、BX、CX

AX,BX,CY

AX,BX,CZ

AX,BY,CX

斧头,斧头,斧头

AX,BY,CZ


从A键的AY开始重复相同的过程,依此类推

我有一个包含地图列表的同义词列表。每个映射都包含一个关键字(a)和一个值(该单词的同义词列表)

e、 g.[{A=[AX,AY,AZ]},{B=[BX,BY]}……]

我正在尝试使用嵌套循环,循环数=具有同义词的单词数。但同义词并不是固定不变的

如何使用递归实现这一点

###编辑零件##

我试图使用嵌套for循环来实现这一点,但我认为这是不可能的,因为单词是不固定的

用于(映射>同义词:同义词列表){

for(Map.Entry单词:wordSynonym.entrySet()){
字符串a=words.getKey();//给我一个
for(字符串同义词:words.getValue()){
//给了我一个
}
}
}

您的方法不是很有效,但您可以设计一个简单的函数来实现这一点:

public static Object getKeyFromValue(Map hm, Object value) {
    for (Iterator iter = hm.entrySet().iterator(); iter.hasNext();) {
      Map.Entry e = (Map.Entry) iter.next();
      if (e.contains(value)) {
        return e.getKey();
      }
    }
return null;
}

我没有测试它是否有效,但它符合这些要求

不幸的是,您的问题只包含要求-它没有显示您方面为自己解决此问题所做的任何努力。请添加您对此问题的尝试-因为此网站不是免费的“我们为您(家庭)工作”服务。除此之外:请转到第页了解如何/问什么。谢谢你可以通过开始尝试来做到这一点。然后,当你写了一些代码,但你不能让它工作时,欢迎你在这个社区范围内提出问题。@GhostCat嗨,对不起,我是这个社区的新手,所以我不知道基本规则。当你给我一个建议时,我编辑了我的问题。我请求你看看我的编辑部分。除此之外,我认为你想搜索排列。是的,句子排列。
public static Object getKeyFromValue(Map hm, Object value) {
    for (Iterator iter = hm.entrySet().iterator(); iter.hasNext();) {
      Map.Entry e = (Map.Entry) iter.next();
      if (e.contains(value)) {
        return e.getKey();
      }
    }
return null;
}