出现问题:无法按照题目要求将单词交替合并。查找后【发现问题出在正则表达式】,若将两个正则表达式都改为: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++];
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
a.txt b.txt 合并
$ cat b.txt | tr ' ' '\n' > tmp
$ paste a.txt tmp | tr '\r' '\n' > c.txt