2013-02-13 76 views
0

我必须将此输入从文件分解为矢量并添加到矢量中。将输入分解为矢量

文件输入

1,375,seller 
    1,375,sellers 
    1,375,send 
    1,375,sister 
    1,375,south 
    1,375,specific 
    1,375,spoiler 
    1,375,stamp 
    1,375,state 
    1,375,stop 
    1,375,talked 
    1,375,tenant 
    1,375,today 
    1,375,told 

    FileInputStream fstream = new FileInputStream("e://inputfile.txt"); 
     // Use DataInputStream to read binary NOT text. 
     BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); 
     String strLine; 

     while ((strLine = br.readLine()) != null) 
     { 
      Vector dataPoints = new Vector(); 
      dataPoints.add(br); 


      dataPoints.add(new DataPoint()); 
     } 


    ------ public DataPoint(double x, double y, String name) this is the method 

如何将字符串分割成双人床和串并给予输入向量?

+0

阅读上['String.split'](http://docs.oracle.com/javase/6/docs/api/java/lang/String .html#split(java.lang.String))和['Double.valueOf'](http://docs.oracle.com/javase/6/docs/api/java/lang/Double.html#valueOf(java .lang.String))。 – Perception 2013-02-13 16:10:28

+1

为什么要使用'Vector'而不是'ArrayList'? – jlordo 2013-02-13 16:10:38

回答

3

使用String#split(String)

Vector<DataPoint> dataPoints = new Vector<DataPoint>();   
while ((strLine = br.readLine()) != null) { 
    String[] array = strLine.split(","); 
    dataPoints.add(new DataPoint(Double.parseDouble(array[0]), Double.parseDouble(array[1]), array[2])); 
} 
+1

没问题。如果您觉得这有帮助,请随时接受答案:) – 2013-02-13 17:14:55

2

就分割字符串使用String.split()使用,分隔符Bufferedreader返回。也考虑使用ArrayList而不是Vector,除非您关心线程安全并且还使您的集合成为通用的。

Vector<DataPoint> dataPoints = new Vector<DataPoint>(); 
while ((strLine = br.readLine()) != null) 
     { 
      String[] arr = strLine.split(","); 
      DataPoint point = new DataPoint(Double.valueOf(arr[0]), Double.valueOf(arr[1]), arr[2]); 
      dataPoints.add(point); 
     } 
+0

Goof建议不要使用原始类型,不好的建议要使用Vector。 Javadoc说:_如果不需要线程安全的实现,建议使用'ArrayList'来代替'Vector'._ – jlordo 2013-02-13 16:15:38

+1

@jlordo hehe,我已经在我的答案中更新了它:) – PermGenError 2013-02-13 16:16:10

+1

您的代码不会在这种情况下编译,因为他的方法接受两个双参数。并且您将字符串值作为arr [0]和arr [1]传递。 – 2013-02-13 16:16:26