小子有个文档,该文档中无空格,无换行回车等。
我需要提取该文档内的所有T1A和HT,其中T1A提取5位。例如T1A11111,HT亦然。跪求代码,谢谢。

解决方案 »

  1.   

    不知道你的T1A和HT出现多少次,有什么特别要求,文本里面的内容是不是字符串,有没有编码要求?
    以下例子取出第一次T1A后的5位和HT后的5位,参照着修改吧public class Sample {
        public static void main(String[] args) {
            try {
                FileInputStream fs = new FileInputStream("/Users/chinuh/test.txt");
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                byte[] buf = new byte[1024];
                int len = 0;
                while ((len=fs.read(buf)) != -1) {
                    bos.write(buf, 0, len);
                }
                String s = bos.toString();
                int idx = s.indexOf("T1A");
                if (idx != -1 && idx + "T1A".length() + 5 <= s.length()) {
                    System.out.println(s.substring(idx+"T1A".length(), idx + "T1A".length()+5));
                }
                idx = s.indexOf("HT");
                if (idx != -1 && idx + "HT".length() + 5 <= s.length()) {
                    System.out.println(s.substring(idx+"HT".length(), idx + "HT".length()+5));
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }  
        }
    }
      

  2.   

    BufferedReader bufferRead = new BufferedReader( new InputStreamReader(new FileInputStream("D:\\123.txt"), "UTF-8"));// 对应文本的格式 
    String str = null;
    StringBuilder builder = new StringBuilder();
    while ((str = bufferRead.readLine()) != null) {
    builder.append(str);
    }
    bufferRead.close();

    String string = builder.toString();
    String[] split = string.split("T1A");
    System.out.println(split.length);
    for (int i = 1; i < split.length; i++) {
    System.out.println("T1A"+split[i].substring(0,5));
    }
    String[] split2 = string.split("HT");
    for (int i = 1; i < split2.length; i++) {
    System.out.println("HT"+split2[i].substring(0,5));
    }
      

  3.   

    没有啊编码要求,全是字符串,关于T1A和HT有很多,但不确定有多少