java - 如何将a.txt中的单词与b.txt中的单词交替合并到c.txt中,a.txt中的单词用回车符分隔;b.txt中的单词用回车或空格进行分隔
PHPz
PHPz 2017-04-17 11:28:00
[Java讨论组]

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

 }
PHPz
PHPz

学习是最好的投资!

全部回复(1)
PHPz

a.txt b.txt 合并

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号