问题描述
LOC+73+AAAA5::6:MELBOURNEMELBOURNEMELBOURNEMELBOURNE+UN'DTM+95:201105030000:203'RFF+BN:MISCMEL35000000000000000000001'RFF+SI:ABC111111111111111111111111135'文件内容如上,比如我想输出第三行第三个元素,我如何设置条件,当程序搜索到第二个元素即BN时,就输出BN的后面一个元素即第三个元素MISCMEL35000000000000000000001呢,求详细代码初学者,神马都不懂,还忘大神赐教
解决方案
解决方案二:
不是很懂你的要求。。。能详细描述吗
解决方案三:
读文件可以用readline(),每次读取一行。然后用indexOf("BN:")判断是否存在,如果返回值大于等于0,说明存在,再用substring截取返回值后面的字符串。
解决方案四:
BufferedReader+正则
解决方案五:
先一行一行读取,读取到指定行然后用正则,估计你这是用+和:来切割的吧?
解决方案六:
用indexOf("BN:")
解决方案七:
没什么特别的方法,打开文件,从输入流中逐行读取,对读取到的字符数据做处理,正则匹配或者查找注意文件如果很大,用bufferedReader类型的输入流,一边读一边处理,防止内存溢出
解决方案八:
java.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;publicclassDemo6{publicstaticvoidmain(String[]args)throwsFileNotFoundException{StringfilePath="E:/JAVA_WorkSpace/Thread/src/test.txt";BufferedReaderin=newBufferedReader(newFileReader(newFile(filePath)));Stringmsg=null;//记录行数intline=0;//指定要查询的行intrequest=3;try{while((msg=in.readLine())!=null){line++;if(line==request){intindex=msg.indexOf("BN:");System.out.println(msg.substring(index+"BN:".length()));}}}catch(IOExceptione){e.printStackTrace();}}}
解决方案九:
先寻找第一个+,然后截取后面的寻找第一个:后面的内容.