java现在有两个list类型的数据,如何进行字符串匹配和替换
javalist1,list2都是string类型例如list1[1]==newslist1[2]==newssportlist1[3]==newssportfootba...
java
list1,list2都是string类型
例如list1[1] == news
list1[2] == newssport
list1[3] == newssportfootball
list2[1] == xinwen
list2[] == tiyuxinwen
里面分别存储了一些字符串
现有一个输入字符串(要么list中的全都不是它的字串,要么list中的一个是最佳匹配子串),先与list1里面的进行匹配,找到最适合的一项,然后把这一段用list2中对应的内容替换掉,输出新的字符串。 展开
list1,list2都是string类型
例如list1[1] == news
list1[2] == newssport
list1[3] == newssportfootball
list2[1] == xinwen
list2[] == tiyuxinwen
里面分别存储了一些字符串
现有一个输入字符串(要么list中的全都不是它的字串,要么list中的一个是最佳匹配子串),先与list1里面的进行匹配,找到最适合的一项,然后把这一段用list2中对应的内容替换掉,输出新的字符串。 展开
3个回答
展开全部
给定一个字符串与list1进行匹配,要么不匹配,要么就找出最大的匹配子串。然后把list2同样索引的字符串替换成给定字符串。然后输出list2,是这样么?
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add("news");
list1.add("newssport");
list1.add("newssportfootball");
List<String> list2 = new ArrayList<String>();
list2.add("xinwen1");
list2.add("xinwen2");
list2.add("xinwen3");
String str = "newssportfootball enrgq asderfnwef";
int index = -1;
int max = 0;
for(int i = 0;i<list1.size();i++)
{
String temp = list1.get(i);
if(str.indexOf(temp)!=-1&&max<temp.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));
}
}
展开全部
是模糊匹配么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白。。。
追问
list1中,要么全部都不匹配,要么一定有一个或一些是输入字符串的子串,首先要找到这个最大的子串,比如输入newssportfootball enrgq asderfnwef
list1[1] list1[2] list1[3]都是这个字符串的子串,但是对于这个来说list1[3]是最匹配的。确定了list1[3]
后,我们要把这个子串用list2[3]的内容替换掉,然后输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询