当前位置: 代码迷 >> Java相关 >> 字符串问题
  详细解决方案

字符串问题

热度:65   发布时间:2008-11-04 14:30:12.0
字符串问题
String str1="abdaff";
String str2="fadjjxbf";
如果str1中的元素在str2中全部有,则输出true,否则输出false.
我做了好久都不能做出来。请用String或StringBuffer做。还有用集合类做。请用这两种方法做出来。写出必要的解释,谢谢
搜索更多相关的解决方案: j2se  

----------------解决方案--------------------------------------------------------
没必要用那么多类吧,一个String就能做了
----------------解决方案--------------------------------------------------------
程序代码:
public class StringTest {
    private String str1="abdaffg";
    private String str2="fadjjxbf";
    
    public boolean test(){
        for(int i=0;i<str1.length(); i++){
            if(str2.indexOf(str1.charAt(i)) == -1)
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        StringTest t = new StringTest();
        System.out.println(t.test());
    }
}

----------------解决方案--------------------------------------------------------
用集合类就稍微麻烦一点

程序代码:
import java.util.ArrayList;
import java.util.Collections;

//用集合类做
public class StringTest2 {
    private String str1="abdaff";
    private String str2="fadjjxbf";
    private ArrayList<Character> list;
   
    public StringTest2(){
        list = new ArrayList<Character>();
        for(int i=0; i<str2.length(); i++){
            list.add(str2.charAt(i));
        }
    }
   
    public boolean test(){
        Collections.sort(list);
        for(int i=0; i<str1.length(); i++){
            if(Collections.binarySearch(list, str1.charAt(i)) < 0){
                return false;
            }
        }
        return true;
    }
   
    public static void main(String[] args) {
        StringTest2 t = new StringTest2();
        System.out.println(t.test());
    }
}

----------------解决方案--------------------------------------------------------
如果str1中的元素在str2中全部有
根据这句话的含义,那只要记录每个字母是否出现就可以了。
----------------解决方案--------------------------------------------------------
  相关解决方案