出现问题:无法按照题目要求将单词交替合并。查找后【发现问题出在正则表达式】,若将两个正则表达式都改为:regex = "\\n*\\s*"; 问题便解决了。
但是现在,我想使用【字符数组】传参数的方式传递正则表达式。
请问怎么实现??
贴上代码如下:
package cn.itcast; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class MainClass { public static void main(String[] args) throws Exception { FileManager a = new FileManager("a.txt",new char[]{'\n'}); FileManager b = new FileManager("b.txt",new char[]{'\n',' '}); FileWriter c = new FileWriter("c.txt"); String aWord = null; String bWord = null; while((aWord = a.nextWord()) !=null ) { c.write(aWord); bWord = b.nextWord(); if(bWord != null) c.write(bWord); } while((bWord = b.nextWord()) != null){ c.write(bWord); } c.close(); } } class FileManager { String[] words = null; int pos = 0; public FileManager(String filename,char[] seperators) throws Exception { File f = new File(filename); FileReader reader = new FileReader(f); char[] buf = new char[(int)f.length()]; int len = reader.read(buf); String results = new String(buf,0,len); String regex = null; if(seperators.length >1 ){ regex = " " + seperators[0] + "|" + seperators[1]; }else{ regex = " " + seperators[0]; } words = results.split(regex); } public String nextWord(){ if(pos == words.length) return null; return words[pos++]; } }
a.txt b.txt 合并
$ cat b.txt | tr ' ' '\n' > tmp
$ paste a.txt tmp | tr '\r' '\n' > c.txt