Вызов определенных строк из массива Java - PullRequest
1 голос
/ 19 апреля 2011

Я пытаюсь загрузить текстовый файл в массив, а затем работать с элементами в массиве.

Мой текстовый файл имеет формат:

1 0 3 4 1

1 0 3 4 2

.....

2 2 2 2 2

Я не могу понять, как извлечь различные элементы вопределенные индексы, чтобы я мог использовать их или делать математические вычисления против них.

 import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

        public class Coord {
            public int a,b,c,d,e,f;


        public static void main(String[] args) throws IOException {
            PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("/Users/evanlivingston/3a.txt", true)));
            Scanner sc = new Scanner(new File("/Users/evanlivingston/1.txt"));
            List<Coord> coords = new ArrayList<Coord>();{


                // for each line in the file
                while(sc.hasNextLine()) {
                    String[] numstrs = sc.nextLine().split("\\s+"); 

                    Coord c = new Coord();

                    c.a = Integer.parseInt(numstrs[1]);
                    c.b = Integer.parseInt(numstrs[2]);
                    c.c = Integer.parseInt(numstrs[3]);
                    c.d = Integer.parseInt(numstrs[4]);
                    c.e = Integer.parseInt(numstrs[5]);
                    c.f = Integer.parseInt(numstrs[6]);

                    coords.add(c);



    // now you have all coords in memory

    for( int i=0; i<coords.size(); i++ ) {
        // 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=i+1; j<coords.size(); j++ ) { 
            Coord c1 = coords.get(i);
            Coord c2 = coords.get(j);
            System.out.println(c2);



        }
    }
    }
        }   
    }
        }

Моя главная задача - выполнить операцию, подобную вычитанию cf из индекса 3 из cf из индекса 4.

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

"Моя главная задача - выполнить операцию, подобную вычитанию cf индекса 3 из cf индекса 4."

Coord c1 = coords.get(3);
Coord c2 = coords.get(4);

int foo = c2.f - c1.f;
0 голосов
/ 19 апреля 2011

Индексы массива Java начинаются с 0. Таким образом, numstrs [1] ссылается на 2-й элемент numstrs.Обратите внимание, что вашему коду требуется 6 чисел в строке, но в примере файла данных отображается только 5.

Кроме того, вы уверены, что хотите назвать свои переменные a, b, c, d, e, f?Может быть, это будет более полезным:

public int a[6];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...