java - 如何将a.txt中的单词与b.txt中的单词交替合并到c.txt中,a.txt中的单词用回车符分隔;b.txt中的单词用回车或空格进行分隔

 sjf66355555 发布于 2022-11-07 21:01

出现问题:无法按照题目要求将单词交替合并。查找后【发现问题出在正则表达式】,若将两个正则表达式都改为: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++];
        }

 }
1 个回答
  • a.txt b.txt 合并

    $ cat b.txt | tr ' ' '\n' > tmp
    $ paste a.txt tmp | tr '\r' '\n' > c.txt

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有