一 :
while循环中最好不要放执行时间过长的逻辑。所以如何做到分离呢。可以利用容器类,例如工作中遇到一个情况,先读取一个文件中的内容,然后每读到一条去判断 是否符合条件,符合了就执行一段长时逻辑,否则就不执行。
正常可以这样
BufferReader br = new BufferReader(new FileReader(new File("aaaa"))); String str = "" while((str = br.readline()) != null){ if(str.equal("xxxx")){ break; }else{ //一系列的操作 } }
但是这样的话,读文件的进程就始终在进行。
所以我的思路是把读到的内容放入到例如set的容器类里,立即读完文件后,关闭流,内容读到内容里,再进行之后的一系列的逻辑。
BufferReader br = new BufferReader(new FileReader(enw File("aaaa"))); HashSet<String> sets = new HashSet<String>(); String str = ""; while((str = br.readline()) != null){ sets.add(str); } br.close(); if(sets.contains("xxxx")){ //一系列逻辑 }
二 : sed
把 .0 在一段逻辑中去掉 1231341.012312414.012313.01314.0123124
sed命令
sed -i 's/\.0//g' aaa.txt
把逗号分割符替换为不可见0005分割符
sed -i 's/,/\x05/g'