按行号检索字符串? Java的

时间:2014-02-11 18:27:45

标签: java search jlist

我有3个文本文件,都包含来自对象的字符串。

我的GUI有一个列表,其中填充了一个文本文件的内容。我目前正在寻找实现从第一个文件中获取行号并从其他文件中的相同行号中提取字符串的内容。任何人都可以推荐任何东西吗?

3 个答案:

答案 0 :(得分:1)

您可以将字符串拆分为行:

String[] lines = s.split("\r?\n");

然后您可以访问任何索引处的行:

System.out.println(lines[0]);  // The array starts at 0

注意:在Windows上,结束行的规范是使用回车符后跟换行符(CRLF)。在Linux上,规范只是LF。正则表达式"\r?\n"适用于两种情况 - 它匹配零或一("?")回车("\r"),后跟换行符("\n")。< / p>

答案 1 :(得分:0)

您可以使用:

 String[] lines = secondFileText.split("\n");

P.s.-如果不起作用,请尝试将\ n替换为\ r \ n。

答案 2 :(得分:0)

BufferedReader将处理不适合内存的大文件,它非常快并且处理\ r和\ n

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


public class ReadByLine {

    /**
     * @param args
     * @throws FileNotFoundException 
     */
    public static void main(String[] args) throws FileNotFoundException {
        File f = new File("xyz.txt");
        int lineNumber = 666;

        BufferedReader br = new BufferedReader(new FileReader(f));
        String line = null;
        int count = -1;
        try {
            while((line = br.readLine())!=null){
                count++;
                if (count == lineNumber){
                    //get the line, do what you want
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally{
            try {
                br.close();
            } catch (IOException e) {
                br = null;
            }
        }

        //do what you want with the line

    }

}