如何在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生成规则:
唐克斯 您的出发点可能是,获取所有可能的单词/单个字符组合 从那时起,您可以尝试构建一个更具体的算法,该算法考虑到您的具体需求 作为组合单词的基本实现,您可以尝试以下方法:
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.