现在开发中碰到一个问题,请教一下各位
有两个字符串 String str = 杭州湖州嘉兴宁波丽水金华  //当然str还有可能更多地市,排列无序
             String str2 = 杭州嘉兴                 //str2也有可能更多,排列无序
现在我想判断的是,str2中的地市在str中是否存在,如果str2中出现一个或更多地市在str中找不到的话,那么程序返回。也就是str2中出现的所有地市,在str中都能找到的话,那么程序继续。请教各位了,有点急!!!!!!!

解决方案 »

  1.   

    你这个问题不好办啊  因为你的str2城市名是连在一起的  谁也不直到怎么截断啊   
      

  2.   

    笨一点的办法:
    把str2中的地名循环放到下面引号中去判断
    if(str.contains("")){
    如果存在,继续;
    }
    else{
    如果不存在,返回false;
    }不过建议你用list或者map去处理,可能效果好点。
      

  3.   

    关键是除非你程序有所有地名的一个列表.不然用什么都没办法判断什么是地名啊..比如有几个城市叫abacbc程序没法知道你是ab ac bc还是 a ba cb c.
    如果你默认两个字是一个城市的话
    你就把两个str按2个字一差分到两个list里.再用循环判断下好了...
      

  4.   

    你没听明白楼主的意思   他的意思是说假如Str = "杭州湖州嘉兴宁波丽水金华"; str2有可能是"宁波嘉兴",让你判断你怎么断句判断啊?
      

  5.   

    package test;public class strFind {
    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
      

  6.   

    str2 其实是我去组装成的字符串,代码如下:
    for (int i = 0; i < ids.length; i++) {
    GisFaultReport faultReport = getNameById(ids[i]);

            String area = faultReport.getArea();
    }
    //area便是传入的地市。
    我是去把这个area放到一个list里去了,然后再转成的字符串,我以为那样容易比。
      

  7.   


    这不就可以了吗,在组装你的str2的时候,就直接拿那个地名去str里面判断,str.contains(area);
    存在就继续,不存在就return。
      

  8.   

    我觉得几乎是不可能的...
    比如str中出现“济南昌平”这样的字符串的时候,本来是没有“南昌”的,可是如果按indexof找的话就会找到“南昌”。这个在没有分隔符的时候太难判断了!
    建议把str加上分隔符,不然,就算能实现也相当困难...
      

  9.   

    既然是放到一个list里,就不要再转成字符串了,刚好list里每个节点就是一个城市,直接从list的每个节点取出城市名字,然后用str.contains做判断就行了。
      

  10.   

    把str2中的地名循环放到下面引号中去判断 
    if(str.contains("")){ 
    如果存在,继续; 

    else{ 
    如果不存在,返回false; 

      

  11.   

    这个在没有分隔符的时候太难判断了! 
    建议把str加上分隔符,不然,就算能实现也相当困难... 
      

  12.   

    最好先把str2里的内容分割下。
      

  13.   

                  不行哦:
                        str1="杭州湖州嘉兴宁波丽水金华";
                        str2 = "杭州嘉兴 ";
                  并不是:str2="杭州湖州"或"宁波丽水"之类的;
    的确是个问题:要是有分割就好了,或者所有地名都只有两个字,呵呵
      

  14.   

    有两个字符串 String str = 杭州湖州嘉兴宁波丽水金华  //当然str还有可能更多地市,排列无序 
                String str2 = 杭州嘉兴                //str2也有可能更多,排列无序 ---
    解题思路有问题。老盯在str查找上 - 一叶障目由于城市无序,在城市名称单独读取的情况下,建议使用Map存放str内的城市,Key就是城市名好了。
    查找是判断Str2内各个城市能否从Map取得就行了,如何取值交给Java自己处理,不需要str循环判断。