解决方案 »

  1.   

    使用List中有个contain方法就可以了
      

  2.   

     list 只能判断比如add进去 "123" 他只能判断123,我还要判断321 也算true的
      

  3.   

    先把第一组号码排列组合,然后把这些排列组合结果放在一个list里,然后再和第二个号码进行比对
      

  4.   

    如果想简单的做,楼主可以将123的顺序组合:123,132,213,231,。。放到一个List,
    List sList = new ArrayList();//将123的组合加入这个集合
    List bList = ...//放置需要判断的第二组号码:312,145
    boolean rs = false;
    for(Integer s:sList){
      if(bList.contatin(s){
      rs = true;
      break;
    }
    }
    判断下rs是否为true就好了
      

  5.   

    写的不错,就是不知道怎么生成组合,看了那个全排列,他那个是输出,我想加到LIST,半天加不进去
      

  6.   

    转换成字符串,然后用contains()函数判断就行了。
      

  7.   

    你再 优化下 ,其实找到后就不用递归循环了public static void main(String[] args) throws Exception {

      
     String buf[]={"1","2","3"}; 
     List<String> item =new ArrayList<String>();
     perm(buf,0,buf.length-1,item);  
     
     String val="312,145";
     String strs[]=val.split(",");
     for (String o : strs) {
    if(item.contains(o)){
    System.out.println("包含"+o);
    }
    }

    }

     public static void perm(String[] buf,int start,int end,List<String> list){  
            if(start==end){//当只要求对数组中一个字母进行全排列时,只要就按该数组输出即可(特殊情况)  
             String val="";
                for(int i=0;i<=end;i++){  
                 val+=buf[i];
                }  
                list.add(val);
            }  
            else{//多个字母全排列(普遍情况) 
                for(int i=start;i<=end;i++){//(让指针start分别指向每一个数) 
                 String temp=buf[start];//交换数组第一个元素与后续的元素  
                    buf[start]=buf[i];  
                    buf[i]=temp;  
                      
                    perm(buf,start+1,end,list);//后续元素递归全排列  
                      
                    temp=buf[start];//将交换后的数组还原  
                    buf[start]=buf[i];  
                    buf[i]=temp;  
                }  
            }  
        }  
      

  8.   

     哎呀,谢谢了,我也看到那个全排列的方法了,不过输出是正常的,我添加到LIST是单个的数字,谢谢了
      

  9.   

    不明白,你string转数字和  数字转String 都可以转 啊。一样的。
      

  10.   

    我看错了,给你个思路吧。比如数字是123,首先把它转换成一个char数组,依次把第二、第三个数字放到第一,再依次把所有的数字放到第二位.................,就可以把所有的组合给列出来了,存到一个List里面,判断就OK了。
      

  11.   

    第一组号码 123
    第二组号码:312,145也就是 123, 213, 321 都可以
    那这样,是不是有逗号?
    有的话 split 然后 String.index();
    String.length() = 3;
    包含1,2,3 这三个字符就是了
      

  12.   

    如果这样 707847353215425432532
    中间有 321
    取 String.index() 所有 1 的位置
    然后旁边(左右)是否有 2,3
    有就 ok
    再判断是否有 3 或者 2(前面有了方向)
      

  13.   

    public static void main(String[] args) {
    System.out.println(isContain("123",new String[]{"312","514"}));
    }
    private static boolean isContain(String a,String[] c){
    boolean result =true;
    StringBuffer content = new StringBuffer();
    for(int i =0;i<c.length;i++){
    String resultString =c[i];
    content.append(resultString);
    }
    for(int i =0;i<a.length();i++){
    String index= a.substring(i,i+1);
    if(!content.toString().contains(index)){
    result =false;
    }
    }
    return result;
      

  14.   


    如果是  System.out.println(isContain("123", new String[] { "3124", "514" })); 怎么弄 
      

  15.   

    public static void main(String[] args) {
    System.out.println(isContain("123",new String[]{"3210","514"}));
    }
    private static boolean isContain(String a,String[] c){
    boolean result =false;
    StringBuffer content = new StringBuffer();
    for(int i =0;i<c.length;i++){
    String resultString =c[i];
    content.append(resultString);
    }
    StringBuffer content1 = new StringBuffer();
    if(content.toString().contains(a)){
    result =true;
    }else{
    for(int i=content.length();i>0;i--){
    content1.append(content.substring(i-1, i));
    }
    if(content1.toString().contains(a)){
    result =true;
    }
    }
    return result;
    }刚刚没看明白 现在初略有写了一个
      

  16.   


    如果是  System.out.println(isContain("123", new String[] { "3124", "514" })); 怎么弄 
    如果是  System.out.println(isContain("123", new String[] { "3124", "514" })); 怎么弄 
    这个就应该是FLASE了吧,因为只要123的各种组合啊,那个明显不符。他那个3210进去也符合,感觉不合理,不过我项目用到的数字都是3位,指定好的,倒是也能满足需求,也挺方便
      

  17.   


    package aaa;import java.util.*;class MyElement {
        private String value;
        private String sequence;
        
        public boolean equals(MyElement e){
            if(e == null) return false;
            return e.sequence.equals(this.sequence);
        }
        public MyElement(String value){
            this.value = value;
            char[] cs = new char[value.length()];
    for(int i=0; i<value.length(); i++) cs[i] = value.charAt(i);
    Arrays.sort(cs);
    this.sequence = new String(cs);
        }
    }public class Test {

    public boolean contains(Collection<MyElement> es, Collection<MyElement> toFind){
    for(MyElement e1 : es){
    for(MyElement e2 : toFind){
    if(e2.equals(e2))
    return true;
    }
    }
    return false;
    }
        public static void main(String[] args){
            List<MyElement> lst1 = new LinkedList<MyElement>();
            lst1.add(new MyElement("123"));
            
    List<MyElement> lst2 = new LinkedList<MyElement>();
            lst2.add(new MyElement("321"));
            lst2.add(new MyElement("456"));
            
    Test obj = new Test();
    System.out.println("find = " + obj.contains(lst1, lst2));
        }
    }