拆分字符串,獲取名稱相同的字符串名稱及對應的個數
阿新 • • 發佈:2018-08-08
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]); } } }
拆分字符串,獲取名稱相同的字符串名稱及對應的個數