现在开发中碰到一个问题,请教一下各位
有两个字符串 String str = 杭州湖州嘉兴宁波丽水金华 //当然str还有可能更多地市,排列无序
String str2 = 杭州嘉兴 //str2也有可能更多,排列无序
现在我想判断的是,str2中的地市在str中是否存在,如果str2中出现一个或更多地市在str中找不到的话,那么程序返回。也就是str2中出现的所有地市,在str中都能找到的话,那么程序继续。请教各位了,有点急!!!!!!!
有两个字符串 String str = 杭州湖州嘉兴宁波丽水金华 //当然str还有可能更多地市,排列无序
String str2 = 杭州嘉兴 //str2也有可能更多,排列无序
现在我想判断的是,str2中的地市在str中是否存在,如果str2中出现一个或更多地市在str中找不到的话,那么程序返回。也就是str2中出现的所有地市,在str中都能找到的话,那么程序继续。请教各位了,有点急!!!!!!!
把str2中的地名循环放到下面引号中去判断
if(str.contains("")){
如果存在,继续;
}
else{
如果不存在,返回false;
}不过建议你用list或者map去处理,可能效果好点。
如果你默认两个字是一个城市的话
你就把两个str按2个字一差分到两个list里.再用循环判断下好了...
public static boolean find(String destStr,String SourceStr,int charnum){
boolean flag= true;
for(int i=0;i<(destStr.length()/charnum);i++){
if (SourceStr.indexOf(destStr.substring(i*charnum, i*charnum+charnum)) < 0)
flag = false;
}
return flag;
}
public static void main(String args[]){
String d ="杭州嘉宁丽水";
String s ="杭州湖州嘉兴宁波丽水金华";
int c = 2;
System.out.println(find(d,s,c));
}
}
----
false
for (int i = 0; i < ids.length; i++) {
GisFaultReport faultReport = getNameById(ids[i]);
String area = faultReport.getArea();
}
//area便是传入的地市。
我是去把这个area放到一个list里去了,然后再转成的字符串,我以为那样容易比。
这不就可以了吗,在组装你的str2的时候,就直接拿那个地名去str里面判断,str.contains(area);
存在就继续,不存在就return。
比如str中出现“济南昌平”这样的字符串的时候,本来是没有“南昌”的,可是如果按indexof找的话就会找到“南昌”。这个在没有分隔符的时候太难判断了!
建议把str加上分隔符,不然,就算能实现也相当困难...
if(str.contains("")){
如果存在,继续;
}
else{
如果不存在,返回false;
}
建议把str加上分隔符,不然,就算能实现也相当困难...
str1="杭州湖州嘉兴宁波丽水金华";
str2 = "杭州嘉兴 ";
并不是:str2="杭州湖州"或"宁波丽水"之类的;
的确是个问题:要是有分割就好了,或者所有地名都只有两个字,呵呵
String str2 = 杭州嘉兴 //str2也有可能更多,排列无序 ---
解题思路有问题。老盯在str查找上 - 一叶障目由于城市无序,在城市名称单独读取的情况下,建议使用Map存放str内的城市,Key就是城市名好了。
查找是判断Str2内各个城市能否从Map取得就行了,如何取值交给Java自己处理,不需要str循环判断。