1. 程式人生 > >拆分字符串,獲取名稱相同的字符串名稱及對應的個數

拆分字符串,獲取名稱相同的字符串名稱及對應的個數

trees 字符 posit strings 獲取文件 格式化 sys equal void

=================代碼如下================
import java.util.TreeSet;
/**
 * 2010-12-29 16:21:00
 * @author Administrator
 *
 */
public class decompositionString {
 //接受字符串轉的數組
 private String[] string;
 private String[] str;
 private Object[] obj;

 //存放文件名和數量的二維數組
 private Object[][] object;
 //用於去除重復值並且排序的TreeSet
 private TreeSet treeSet; 
        /**
         * 轉換成數組,遍歷HashSet中的元素,存放到Object二維數組中
         */
        public Object[][] zhuanCun(TreeSet ts,Object[][] objt){
         obj=ts.toArray();
         for (int i = 0; i < obj.length; i++) {
            String s=(String) obj[i];
            objt[i][0] = s.substring(0, s.lastIndexOf("#"));
            objt[i][1] = s.substring(s.lastIndexOf("#")+1);
    }
         return objt;
        }

 /**
    * 獲取一個有規律的文件名稱字符串,輸出文件的名稱(前綴名稱相同的文件,只輸出前綴名)和對應的數量
    * @param strings
    * @return
    */
 public Object[][] getNameSum(String strings){
    //名稱為“xxx”的文件數量
    int count;
    //以"~"為符號,將字符串格式化存放到數組中
    string=strings.split("~");
    str=strings.split("~");
    //初始化reeSet
    treeSet=new TreeSet();
    //重新定義數組string、str中文件的名稱
    for (int i = 0; i < string.length; i++) {
     string[i] = string[i].substring(0, string[i].lastIndexOf("."));
     str[i] = str[i].substring(0, str[i].lastIndexOf("."));
    }

    //獲取文件名和文件名相同的文件個數,存放到二維數組中
    for (int i = 0; i < string.length; i++) {
     count=0;
     //獲取同名文件的個數
     for (int j = 0; j < str.length; j++) {
        if (string[i].equals(str[j])) {
         count++;
        }
     }
     //修改數組string中的字符串
     string[i] += "#"+count;
     //將數組string存放到treeSet中(treeSet可以自動剔除重復的值並且排序)
     treeSet.add(string[i]);
    }

    //定義二維數組的長度
    object=new Object[treeSet.size()][2];
    //將treeSet中的元素存入Object二維數組object
    object=this.zhuanCun(treeSet, object);
    return object;
 }

 public static void main(String[] args) {
    //測試字符串
    String ss = "01.JPG~02.JPG~05美女.flv~05美女.avi~05美女.mp4~06.JPG~06-3.JPG~06-5.JPG~06-6.JPG~06-6.BPM";

                Decomposition dec = new Decomposition();
                Object[][] objt = dec.getNameSum(ss);
                for (int i = 0; i < objt.length; i++) {
                        System.out.print("name:"+objt[i][0] + "     ");
                        System.out.println("count:"+objt[i][1]);
                }
 }
}

拆分字符串,獲取名稱相同的字符串名稱及對應的個數