Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 另一个将文本文件放入Arraylist的方法_Java_Text_Arraylist - Fatal编程技术网

Java 另一个将文本文件放入Arraylist的方法

Java 另一个将文本文件放入Arraylist的方法,java,text,arraylist,Java,Text,Arraylist,我试图在文本文件中获取每行上的每个元素,这样我就可以逐行执行计算。问题是我只能从我的文本中获取每个单独的元素。我希望能够指向第50行,提取第一个元素,第二个,第三个元素,然后转到第51行,做同样的事情 import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class ReadWithScanner { public stat

我试图在文本文件中获取每行上的每个元素,这样我就可以逐行执行计算。问题是我只能从我的文本中获取每个单独的元素。我希望能够指向第50行,提取第一个元素,第二个,第三个元素,然后转到第51行,做同样的事情

    import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ReadWithScanner {



    public static void main(String[] args) throws IOException {
            Scanner scanner = new Scanner(new File("/Users/evanlivingston/2.txt"));
            List<Double> doubles = new ArrayList<Double>();{
            while(scanner.hasNextLine()){
                doubles.add(scanner.nextDouble());
            }
            for( int counter=0; counter<doubles.size(); counter++ ) {
                // j=i+1 to calculate the distance between two points only once, 
                // not one way and back; also skip calculating distance between 
                // the same point
                for( int j=counter+1; j<doubles.size(); j++ ) { 
                    Double c1 = doubles.get(counter);
                    Double c2 = doubles.get(j); 
            System.out.println(c1 - c2);    
                }
            }
        }
    }
    }
import java.io.*;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner;
公共类ReadWithScanner{
公共静态void main(字符串[]args)引发IOException{
Scanner Scanner=new Scanner(新文件(“/Users/evanlivingston/2.txt”);
List double=new ArrayList(){
while(scanner.hasNextLine()){
doubles.add(scanner.nextDouble());
}

对于(int counter=0;counter我认为问题在于:

while(scanner.hasNextLine()){
            doubles.add(scanner.nextDouble());
        }
如果您的意图是解析一行中的每一个double,并且有多行,那么您就做错了。 我想你需要这样的东西:

while (scanner.hasNextLine()){
      String currentLine = scanner.nextLine();
      //here iterate the string currentLine to get each double
}

我认为问题在于:

while(scanner.hasNextLine()){
            doubles.add(scanner.nextDouble());
        }
如果您的意图是解析一行中的每一个double,并且有多行,那么您就做错了。 我想你需要这样的东西:

while (scanner.hasNextLine()){
      String currentLine = scanner.nextLine();
      //here iterate the string currentLine to get each double
}

扩展0verbose的答案:似乎您希望按行获取元素,即稍后您希望知道double在哪一行

因此,尝试使用
列表
,并为每一行创建一个子列表。
如果所有行都有相同数量的元素,您可以使用单个列表,然后使用
index=line\u no*num\u elements\u per\u line+element\u index\u in\u line
来处理特定的元素。

根据0verbose的回答展开:看起来您想逐行获取元素,即稍后您想知道这两个元素在哪一行

因此,尝试使用
列表
,并为每一行创建一个子列表。
如果所有的行都有相同数量的元素,你可以使用一个列表,然后使用
index=line\u no*num\u elements\u per\u line+element\u index\u in\u line
来处理一个特定的元素。

你能把这个问题改写一下吗。要理解你的问题到底是什么有点困难。你说为什么有嵌套循环你想提取每行的第一、第二和第三个元素,但似乎每行都有6个元素。你是故意跳过第4到第6个元素的吗?你能把问题改写一下吗?要理解你的问题到底是什么有点困难。为什么有嵌套循环?你说你想提取第一、第二和第三个元素但似乎每行都有6个元素。你是故意跳过元素4到6吗?虽然我同意这是一种糟糕的风格,但它会得到所有元素。
hasNextLine()
不会跳过这一行的其余部分。@glowcoder:你说得对。无论如何,我认为他的问题与每一行的每一个double有关,通过一行访问它们。因此它应该调用nextLine()把所有的东西分成两行groups@Overbose,在我开始遍历行并进行计算之前,我正在尝试将整个文本加载到内存中,您提出的解决方案不允许这样做?@Evan即使加载所有文本,也可以这样做,但1,您现在还没有将整个文本加载到内存中,2为什么你愿意吗?@glowcoder,我正在对文件中的每一行和每一行执行计算,如果我有60000行,我将创建3600000000行。我正在尽可能地提高效率。虽然我同意这是一种糟糕的风格,但它会把它们都计算出来。
hasNextLine()
不会跳过这一行的其余部分。@glowcoder:你说得对。无论如何,我认为他的问题与每一行的每一个double有关,通过一行访问它们。因此它应该调用nextLine()把所有的东西分成两行groups@Overbose,在我开始遍历行并进行计算之前,我正在尝试将整个文本加载到内存中,您提出的解决方案不允许这样做?@Evan即使加载所有文本,也可以这样做,但1,您现在还没有将整个文本加载到内存中,2为什么你愿意吗?@glowcoder,我在计算文件中的每一行,每一行,如果我有60000行,我会创建3600000000行。我会尽可能地提高效率。