如何从txt到数组获取特定长度

时间:2014-10-26 17:20:15

标签: java arrays

我有一个大约10000字的文本文件,每个文字都在一个单独的行上。程序需要从控制台读取一个整数。然后,程序需要在test.txt中保存每个单词,其中单词的长度对应于用户输入到数组列表的数字。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;

public class diplomska {

    public static void main(String[] args) {

        String besede[] = new String[10000];
        int i = 0;
        System.out.println("Vnesi dožino besede, ki jo iščeš");
        Scanner in = new Scanner(System. in );
        int dolzina = in .nextInt();

        try {
            try {
                Scanner vrstica = new Scanner(new File("test.txt"));
                vrstica.useDelimiter(System.getProperty("line.separator"));
                String ln = vrstica.next();

                if (i == dolzina)


            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

字符串的长度可以使用字符串的length()方法来测量。 所以i = ln.length()

如果您的目标是输出

使用System.out.println(ln);

如果您的目标是保存

数组的问题是,它们的长度不是动态的。使用Lists。您可以使用add(T t)方法添加匹配元素。您可以使用int size()方法获得数字。删除解决方案可以通过clear()方法完成。

答案 1 :(得分:1)

更改

(i==dolzina) 

if(ln.length()==dolzina)

之后,请使用System.out.println(ln);

没有必要保存字符串数组,因为您的最终目标是简单地打印出用户提供长度的所有字符串。

答案 2 :(得分:0)

您需要遍历单词列表。

while (vrstica.hasNext()) {
    String ln = vrstica.next();
    if (ln.length() == dolzina) {
        // save to the array
        besede[i] = ln;
        i++;
    }
}

您也可以使用List代替数组,因为它的大小是动态的。