2014-10-26 29 views
0

我有一个约10000个单词的文本文件,每个单独一行。该程序需要从控制台读取一个整数。然后,程序需要将每个单词保存在test.txt中,其中单词的长度对应于用户输入到数组列表中的数字。如何获得从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(); 
      } 
     } 
    } 
} 
+2

请首先检查您的代码,因为在打开和关闭大括号时出现错误,请确保您发布代码时必须妥善打算并且具体 – 2014-10-26 17:25:16

+0

如果其中一个回答回答了您的问题,请接受它作为答案。 – FuriousFolder 2014-12-01 17:38:02

回答

1

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

如果你的目标是要输出的话

使用System.out.println(ln);

如果你的目标是要保存的话

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

1

变化

(i==dolzina) 

if(ln.length()==dolzina) 

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

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

+0

我需要保存到数组,因为后来我需要用来输入让我们说P ??? aa并获得可能的结果(?meaining任何字母) – 2014-10-26 17:41:38

+0

在这种情况下,正如Terry Storm建议的那样,您应该使用一个列表。列表允许您在常量时间内添加元素。只要您不需要删除添加的元素,列表就会运行良好。 你需要检查重复吗?如果是这样,你可以考虑一个HashMap – FuriousFolder 2014-10-27 14:20:30

0

您需要遍历单词列表。

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

你也可以使用一个List不是数组的,因为它的大小是动态的。

相关问题