java读取txt文件遇到空格对内容定列,将第二列以abc开头的行内容另存一文件中

 我来答
balsum
2013-10-23 · TA获得超过311个赞
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:184万
展开全部

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;

public class $ {
    public static void main(String[] args) {
        File file = new File("D://test.txt");
        BufferedReader in = null;
        PrintWriter out = null;
        try {
            in = new BufferedReader(new FileReader(file));
            String str = "";
            String result = "";
            while ((str = in.readLine()) != null && str.length() > 0) {
                //多个连续空格替换成一个空格然后通过空格分割成数组
                String[] arr = str.replaceAll(" +", " ").split(" ");
                //数组第二个
                if (arr.length > 1 && arr[1].startsWith("abc")) {
                    result += str + "\r\n";
                }
            }
            out = new PrintWriter("D://test1.txt");
            out.write(result);
            System.out.println(result);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            out.flush();
            out.close();
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
更多追问追答
追问
如果将数组位数往下计算,应该怎么写呢?从二位或三位以abc开始的呢
追答

//数组第二个

if (arr.length > 1 && arr[1].startsWith("abc")) {
    result += str + "\r\n";
}

修改这里的判断

arr[1] 修改这里索引,表示第几列 .. 前提确保当前行有那么多列

arr[1].startsWith("abc") 如果不是以abc开头,如 cabc 可以使用indexOf("abc") == ?判断

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式