在TxT中查寻是否出现相同的String
在TxT中查找是否出现相同的String
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class byteTest { public static void main(String[] args) throws IOException { // 文件file对象 File file = new File("D:\\app38.txt"); // 构造BufferedReader对象 BufferedReader reader = new BufferedReader(new FileReader(file)); // 单行读取值 String temString = null; // 存放所有数据 StringBuilder bd = new StringBuilder(); // 存放所有ID值 List<String> StrValue = new ArrayList<String>(); // 统计ID的总个数 int line = 0; // 获得ID while ((temString = reader.readLine()) != null) { bd.append(temString); int n = temString.indexOf("<out_trade_no><![CDATA["); if (n != -1) { line++; String[] str = temString.split("CDATA\\["); String valueId = str[1].toString(); String[] va = valueId.split("]]"); StrValue.add(va[0]); System.out.print(va[0] + "\t"); } } System.out .println("------------------------------------------------------------------------------------------------------------------------------------------"); System.out.println("id总数量为:" + line); // 出现的次数 int findCount = 0; // 每次匹配到的索引,用于删除 int in = 0; // 判断单个ID出现的次数 for (String s : StrValue) { System.out.println("匹配的数据" + s); while (true) { String findValue = "<out_trade_no><![CDATA[" + s + "]]></out_trade_no>"; in = bd.toString().indexOf(findValue); if (in != -1) { // 当前ID找到一次数量加1 findCount++; // 删除已经统计过的匹配ID bd.delete(in, in + findValue.length()); // 统计完成打印信息 } else { System.out.println("ID为" + s + "的出现了" + findCount + "次"); // 如数量出现异常将打印提示 if (findCount != 1) { System.out .println("上面ID出现次数异常xxxxxxxxxxxxxxxxxxxxxxxxxxxx"); } System.out .println("------------------------------------------------------------------------------------------------------------------------------------------"); // 计数统计还原 findCount = 0; break; } } } } }