我有一个大约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();
}
}
}
}
答案 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
代替数组,因为它的大小是动态的。