Java 从长字符串中获取最小的匹配字符串

Java 从长字符串中获取最小的匹配字符串,java,string,substring,Java,String,Substring,假设我有一根绳子 interpreter, interprete, interpret 现在我想做的是从上面的字符串中得到最小的匹配字符串,它必须是: interpret 如果有人能帮我解决这个问题,是否可以使用Java?谢谢如果我没弄错,您需要输入字符串s中最短的单词,其中包括目标字符串t=“explorate” 因此,首先将字符串拆分为单词w,例如,使用s.split(\\s*,\\s*),然后在每个字符串w上使用w.contains(t),检查它是否包含您要查找的单词。选择包含

假设我有一根绳子

  interpreter, interprete, interpret
现在我想做的是从上面的字符串中得到最小的匹配字符串,它必须是:

  interpret

如果有人能帮我解决这个问题,是否可以使用Java?谢谢

如果我没弄错,您需要输入字符串
s
中最短的单词,其中包括目标字符串
t=“explorate”

因此,首先将字符串拆分为单词
w
,例如,使用
s.split(\\s*,\\s*)
,然后在每个字符串
w
上使用
w.contains(t)
,检查它是否包含您要查找的单词。选择
包含的
方法返回的
true

最短字符串检查此

public static void main(String[] ar)
    {
        List<String> all=new LinkedList<String>();
        all.add("interpreter");
        all.add("interprete");
        all.add("interpret");
        String small="";
        small=all.get(0);
        for (String string : all) {
            if(small.contains(string))
            {
                small=string;
            }
        }
        System.out.println(small);
    }
publicstaticvoidmain(字符串[]ar)
{
List all=new LinkedList();
所有。添加(“翻译”);
全部。添加(“口译员”);
全部。添加(“解释”);
字符串小=”;
small=all.get(0);
for(字符串:全部){
if(小.包含(字符串))
{
小=字符串;
}
}
System.out.println(小);
}
让我知道,它满足你的要求吗

//-----------------编辑一--------------------------

public static void main(String[] ar)
{
List<String> all=new LinkedList<String>();
Set<String> result=new LinkedHashSet<String>();
all.add("interpreter");
all.add("interprete");
all.add("interpret");
all.add("developed");
all.add("develops");
String small="";

for(int i=0;i<all.size();i++)
{
    small=all.get(i);
    for(int j=i;j<all.size();j++)
    {
        if(small.contains(all.get(j)))
            {
                small=all.get(j);
            }
    }
    result.add(small);
}
for (String string : result) {
    System.out.println(string);
}
}
publicstaticvoidmain(字符串[]ar)
{
List all=new LinkedList();
设置结果=新建LinkedHashSet();
所有。添加(“翻译”);
全部。添加(“口译员”);
全部。添加(“解释”);
全部。添加(“已开发”);
全部。添加(“开发”);
字符串小=”;

对于(inti=0;i,您正在寻找的被称为用于Java的lemmatizer/steamer

其中有一些(我没有使用过),但您可能希望搜索/尝试其中的一些:

您应该测试它们中的每一个,因为例如,一些(在滚雪球的情况下)可以:


oki我已经试过了,但是我必须将它与给定的字符串进行比较才能匹配实际上我需要给定字符串中的根单词假设“crawler crawle crawl”将是crawler你是专门寻找单词stem还是只想得到最小的常用起始字符集。词干本身就是一门艺术(在JAVA中)所以区别很重要。你想包括这个schenerio太inter,inteper,inteq,所以它的答案将是inte,而不是元素,所以你的答案将是任何元素的子字符串,而不是实际元素??但是如果我有“解释器”,“解释器”,“解释”,“发展”,“发展”呢因此,小将解释和发展?我编辑了程序,检查它…这里你会得到“解释”,“发展”,“发展”作为你的结果…我还需要所有小匹配项,如“发展”
you need to compare all char one by one of all  string and a array of boolean flag maintain 
for every pair of string then check out all Boolean array similarity(length) and then substring 
of any string from that length
i hope this will help    
 Community     
 Communities  --> Communiti // this is obviously wrong