想請問一下 我怎麼去判斷一個字串的比對問題, 當順序不一樣時? 像是 String str1 = "abc"; 
String str2 = "bac"; 這2個字串, 我不管他們的排列順利為何, 要怎麼去判斷他們兩個是一樣的?? 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ydsakyclguozi】截止到2008-06-23 14:38:40的历史汇总数据(不包括此帖):
    发帖数:25                 发帖分:1005               
    结贴数:25                 结贴分:1005               
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    按照每个字符排序成一个新的字符串,然后在用.equals比较,如果一致就是一致,否则就是不一致
      

  3.   

    package com.test.all;import java.util.HashMap;
    import java.util.Map;public class OneDataStructure { private Map<Character, Integer> charMap = new HashMap<Character, Integer>(); public OneDataStructure(String str) {
    if (null != str) {
    char[] chars = str.toCharArray();
    // 记录下出现的字符和次数
    for (char c : chars) {
    if (charMap.containsKey(c)) {
    charMap.put(c, charMap.get(c) + 1);
    } else {
    charMap.put(c, 1);
    }
    }
    }
    } public Map<Character, Integer> getCharMap() {
    return charMap;
    } public boolean isTheSameTo(OneDataStructure another) {
    Map<Character, Integer> anotherMap = another.getCharMap();
    if (charMap.size() != anotherMap.size()) {
    return false;
    } else {
    for (Character c : charMap.keySet()) {
    if (charMap.get(c) != anotherMap.get(c))
    return false;
    }
    return true;
    }
    } public static void main(String[] args) {
    String str1 = "abc";
    String str2 = "bac";
    System.out.println(new OneDataStructure(str1)
    .isTheSameTo(new OneDataStructure(str2)));
    }
    }
      

  4.   

    我也来一个
    boolean compareString(String s1, String s2) {
    if(s1.length()!=s2.length())
    return false;
    List<Character> lista=new ArrayList<Character>();
    List<Character> listb=new ArrayList<Character>();
    for(int i=0;i<s1.length();i++){
    lista.add(s1.charAt(i));
    listb.add(s2.charAt(i));
    }
    Collections.sort(lista);
    Collections.sort(listb);
    for(int i=0;i<lista.size();i++){
    if(!lista.get(i).equals(listb.get(i)))
    return false;
    }
    return true;
    }
      

  5.   

    一个思路 
    把string先转换成一个char数组
    Stirng.toCharArray();
    问题就变成 了比较两个char数组元素是否相等的问题 。
    先判断 长度相等
    if(char1.length==char2.length)
    然后循环判断数组1的元素是否在数组2里面,在的话就都删除(以免遇到相同字符再次比较)
    for(int i=0;i<char1.length;i++){
       for(int j=0;j<char2.length;j++){
         if(char1[i]==char2[j])
           //删除操作
         else{
            //如果比较完都没有发现相同的,就返回,说明不同,如果全部比较完成,说明相同。
         }
       }
    }
      

  6.   

    public String cpare(String a1,String a2)
    {
    char []newa1=a1.toCharArray();
    char []newa2=a2.toCharArray();
    int flag=0;
    for(int i=0;i<newa1.length;i++)
    {
    for(int j=0;j<newa2.length;j++)
    {
    if(newa2[j]==newa1[i])
    {
    flag=1;
    continue;
    }else
    {
    flag=0;
    }
    }
    }
    if(flag==1 && newa1.length==newa2.length)
    {
    return "相同";
    }else{
    return "不相同";
    }

    }
      

  7.   

     List<Character> lista=new ArrayList<Character>();
    List<Character>,这个<Character>啥意思?
      

  8.   

    在java JDK1.5之前是没有泛型的,怨不得呢,我从开始就用的是1.4