「java最优匹配」最佳匹配算法

博主:adminadmin 2022-11-30 11:08:07 73

本篇文章给大家谈谈java最优匹配,以及最佳匹配算法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java编程实现字符串的模式匹配

传统的字符串模式匹配算法(也就是BF算法)就是对于主串和模式串双双自左向右,一个一个字符比较,如果不匹配,主串和模式串的位置指针都要回溯。这样的算法时间复杂度为O(n*m),其中n和m分别为串s和串t的长度。

KMP 算法是由Knuth,Morris和Pratt等人共同提出的,所以成为Knuth-Morris-Pratt算法,简称KMP算法。KMP算法是字符串模式匹配中的经典算法。和BF算法相比,KMP算法的不同点是匹配过程中,主串的位置指针不会回溯,这样的结果使得算法时间复杂度只为O(n+m)。

Java字符串匹配?

按LS所说的确可以。要是一定要用String的话可以用

String[] s;

for(String ss:s)

if(ss.contains("贸易"))

System.out.println(ss);

这样的方法。

求 JAVA 字符串匹配 完美算法

只需要实例化 类Matching 设置参数 并调用m.getIndex()方法就OK 请测试... public class Test18{

public static void main(String[] args){

Matching m = new Matching();

m.setOrgStr("ALSKLSHFKDLLS");

m.setSubStr("LS");

System.out.println(m.getIndex());

}

}

class Matching{

String orgStr ="";

String subStr ="";

public void setOrgStr(String orgStr){

this.orgStr = orgStr;

}

public void setSubStr(String subStr){

this.subStr = subStr;

}

public String getIndex(){

StringBuffer sb = new StringBuffer("{");

//根据关键字subStr来拆分字符串orgStr所得的字符串数组

String[] sub = orgStr.split(subStr);

int keyLength = subStr.length(); //关键字长度

int keySize = 0; //关键字个数

int subSize = sub.length; //子字符串个数

int subLength = 0; //子字符串长度

if(!orgStr.endsWith(subStr)){

keySize = subSize-1;

}else

keySize = subSize; int[] index = new int[keySize];//关键字下标数组

for(int i=0;ikeySize;i++){

subLength = sub[i].length();

if(i==0){

index[i]=subLength;

}else

index[i]=index[i-1]+subLength+keyLength;

}

if(keySize0){

int l = keySize-1;

for(int i=0;il;i++){

sb.append(index[i]+",");

}

sb.append(index[l]);//最后一个关键字下标

}else{

sb.append("NULL");

}

sb.append("}");

return sb.toString();

}

}

java 正则匹配

按照你的要求编写的Java正则匹配程序如下

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class A {

 public static void main(String[] args) {

  String s="[n]xxxxxxx/[n]";

  String regex="((.+?)).*?/\\2";

  Pattern p = Pattern.compile(regex);

  Matcher m = p.matcher(s);

  while(m.find()){

   System.out.println(m.group(1));

  }

 }

}

运行结果

[n]

JAVA编译器的匹配问题

我也提问过相同问题,没有合适答案,后来同学给了个答案不知道对否:

第一步,找精确匹配(形参实参精确匹配的同一类型)找到,则执行,找不到转第二步。

第二步,找可行匹配(符合替换原则的匹配),没找到可行匹配,报错,只找到一个可行匹配,执行可行匹配对应的方法,如果有多于一个的可行匹配,转第三步。

第三步,多个可行匹配两两比较,多个幸存者,报错,一个幸存者,则执行。

两两比较原则是:撇开实参,只比较形参,依据替换原则,谁的层次低谁在该形参上胜出。

java现在有两个list类型的数据,如何进行字符串匹配和替换

给定一个字符串与list1进行匹配,要么不匹配,要么就找出最大的匹配子串。然后把list2同样索引的字符串替换成给定字符串。然后输出list2,是这样么?

    public static void main(String[] args) {

        ListString list1 = new ArrayListString();

        list1.add("news");

        list1.add("newssport");

        list1.add("newssportfootball");        

        ListString list2 = new ArrayListString();

        list2.add("xinwen1");

        list2.add("xinwen2");

        list2.add("xinwen3");

        String str = "newssportfootball  enrgq  asderfnwef";

        int index = -1;

        int max = 0;

        for(int i = 0;ilist1.size();i++)

        {

            String temp = list1.get(i);

            if(str.indexOf(temp)!=-1maxtemp.length()){

                max = temp.length();

                index = i;

            }

        }

        if(index!=-1){

            System.out.println("改变前:"+list2.get(index));

            list2.add(index, list1.get(index));

            System.out.println("改变后:"+list2.get(index));

        }

        

    }

java最优匹配的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于最佳匹配算法、java最优匹配的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。