关于程序中的一点小思路以及sed中一个知识点

一  :

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'


猜你喜欢

转载自blog.csdn.net/yyqq188/article/details/80062109