Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中生成一个单词的所有可能的快捷方式?_Java_String_Algorithm_Shortcut - Fatal编程技术网

如何在Java中生成一个单词的所有可能的快捷方式?

如何在Java中生成一个单词的所有可能的快捷方式?,java,string,algorithm,shortcut,Java,String,Algorithm,Shortcut,是否有一种算法可以生成一个单词的所有可能的快捷方式? 例如: 输入:Arteria 输出: Arter. Art. Ar. Aa. aa. a. 例如: 输入:造影剂 输出: C.A. ca. contr.a. contr.ag. 基于负面反应进行编辑,因为没有详细规定规则 简单accronyms生成规则: 辅音词应该以辅音结尾 辅音词应该由单词的音节组成。我们可以将音节分为: -单音节词称为单音节词: 猫,狗,汽车,天空 -双音节词称为双音节词: 电话,电话,电话 -三音节单词称为三音节:

是否有一种算法可以生成一个单词的所有可能的快捷方式? 例如:

输入:
Arteria

输出:

Arter.
Art.
Ar.
Aa.
aa.
a.
例如:

输入:
造影剂

输出:

C.A.
ca.
contr.a.
contr.ag.
基于负面反应进行编辑,因为没有详细规定规则

简单accronyms生成规则:

  • 辅音词应该以辅音结尾
  • 辅音词应该由单词的音节组成。我们可以将音节分为:

    -单音节词称为单音节词: 猫,狗,汽车,天空

    -双音节词称为双音节词: 电话,电话,电话

    -三音节单词称为三音节: 美丽的,美丽的,美丽的,美丽的

    -超过三个音节的单词称为多音节: Ox-y-mor-on

  • 因此,它应该同时应用这两条规则。谢谢

    高级规则是针对拉丁语的,我将为他们发布另一个问题


    唐克斯

    您的出发点可能是,获取所有可能的单词/单个字符组合

    从那时起,您可以尝试构建一个更具体的算法,该算法考虑到您的具体需求

    作为组合单词的基本实现,您可以尝试以下方法:

    import java.util.ArrayList;
    import java.util.List;
    
    public class Shortcut {
    
        public Shortcut() {
            printMultipleWordShortcuts("Contrast Agents");
        }
    
        private String[] getSingleWordShortcuts(String input) {
    
            String[] possibleCombinations = new String[ input.length() ];
    
            // Iterate backwards over the input string and get possible
            // combinations
            for(int i = input.length(); i > 0; i--) {
    
                possibleCombinations[i-1] = input.substring(0, i);
    
            }
    
            return possibleCombinations;
    
        }
    
        private void printMultipleWordShortcuts(String input) {
    
            // Split the input string, assuming that the input words are separated by spaces
            String[] splitWords = input.split(" ");
    
            List<String[]> allCombinations = new ArrayList<>();
    
            List<String> result = new ArrayList<>();
    
            // Get possible combinations for every split word.
            for(int i = 0; i < splitWords.length; i++) {
                allCombinations.add(getSingleWordShortcuts(splitWords[i]));
            }
    
            for(int i = 0; i < allCombinations.size(); i++) {
    
                for(int j = allCombinations.get(i).length; j > 0; j--) {
    
                    if(i + 1 < allCombinations.size()) {
    
                        for(int c = 0; c<allCombinations.get(i+1).length; c++) {
    
                            result.add(allCombinations.get(i)[j-1] + ". " + allCombinations.get(i+1)[c] + ".");
                        }
                    }
                }
            }
    
            // Output all possibilities
            for(String s : result) {
                System.out.println(s);
            }
        }
    }
    

    作为另一个单词缩写的规则是什么?在最简单的情况下,它应该以辅音结尾,但问题是,我要生成医学术语,所以拉丁语快捷方式没有具体的规则。它应该连接到某个字典,可能给出的示例很难理解。aa怎么可能是动脉的缩写呢。还有,如果没有一般规则,你说“一切可能”是什么意思?你可以在网上查找一些医学缩写数据库,并尝试使用它们吗?所以这里的问题是,我必须用捷克语生成缩写,大部分以辅音结尾,我还必须生成拉丁语的辅音。
    Contrast. A.
    Contrast. Ag.
    Contrast. Age.
    Contrast. Agen.
    Contrast. Agent.
    Contrast. Agents.
    Contras. A.
    Contras. Ag.
    Contras. Age.
    Contras. Agen.
    Contras. Agent.
    Contras. Agents.
    Contra. A.
    Contra. Ag.
    Contra. Age.
    Contra. Agen.
    Contra. Agent.
    Contra. Agents.
    Contr. A.
    Contr. Ag.
    Contr. Age.
    Contr. Agen.
    Contr. Agent.
    Contr. Agents.
    Cont. A.
    Cont. Ag.
    Cont. Age.
    Cont. Agen.
    Cont. Agent.
    Cont. Agents.
    Con. A.
    Con. Ag.
    Con. Age.
    Con. Agen.
    Con. Agent.
    Con. Agents.
    Co. A.
    Co. Ag.
    Co. Age.
    Co. Agen.
    Co. Agent.
    Co. Agents.
    C. A.
    C. Ag.
    C. Age.
    C. Agen.
    C. Agent.
    C. Agents.