Java 获取特定';元素';从导入的电子表格数据的字符串数组中?

Java 获取特定';元素';从导入的电子表格数据的字符串数组中?,java,Java,对不起,这个问题的措辞很尴尬。长话短说,我有一份excel电子表格,其中包括纽约10个不同地区以及2008-2018年各自的每周平均天然气价格。我的任务是提取布法罗每年的平均汽油价格。整个电子表格中的数据被放入一个字符串数组中,而我目前采用的方法肯定是错误的 我将如何着手抓取水牛城2018年的每周天然气价格?如果有人能给我一个先发制人的建议,我就可以完成剩下的几年,以及家庭作业的其他两部分。我相信我应该使用StringBuilder,因为这是我们目前在课堂上讨论的内容。(特别是通过StringB

对不起,这个问题的措辞很尴尬。长话短说,我有一份excel电子表格,其中包括纽约10个不同地区以及2008-2018年各自的每周平均天然气价格。我的任务是提取布法罗每年的平均汽油价格。整个电子表格中的数据被放入一个字符串数组中,而我目前采用的方法肯定是错误的

我将如何着手抓取水牛城2018年的每周天然气价格?如果有人能给我一个先发制人的建议,我就可以完成剩下的几年,以及家庭作业的其他两部分。我相信我应该使用StringBuilder,因为这是我们目前在课堂上讨论的内容。(特别是通过StringBuilder学习拆分、追加和子字符串)

以下是我当前的代码:

package Chapter9;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;

public class GasPrices {

    public static void main(String[] args) throws IOException {


        String[] gasData = getData(); // download gas price into an array

        StringBuilder sb = new StringBuilder();

        for(String s : gasData) {
            System.out.println(s);
            sb.append(s);
        }
    }



    public static String[] getData() throws IOException {

        URL url = new URL("https://cs.wcupa.edu/schen/csc240/Gasoline_Retail_Prices_Weekly_Average_by_Region__Beginning_2008.csv");
        URLConnection connection = url.openConnection();

        InputStreamReader input = new InputStreamReader(connection.getInputStream());
        BufferedReader buffer = null;
        StringBuilder data = new StringBuilder();

        String line = "";
        try {
            buffer = new BufferedReader(input);

            while ((line = buffer.readLine()) != null) {
                data.append(line + "\n");
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (buffer != null) {
                try {
                    buffer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return data.toString().split("\n");
    }

}
我的产出如下:(只放2017-2018年的数据)


您可以将所有行存储到二维数组中,例如
data

StringBuilder sb = new StringBuilder(input);

int rows = sb.toString().split("\n").length;
int cols = sb.toString().split("\n").split(",").length;

String[] data = new String[rows][cols];
现在,
数据的每一行
存储特定日期的值,日期位于索引0,即
数据[0]

要访问每个日期的Buffalo数据,请在
数据的行中创建一个循环,并提取每行索引4处的元素,即
数据[i][4]

for(int i = 0; i < rows; i++)
{
    System.out.println("The date is: "+data[i][0]);
    System.out.println("Buffalo's average is: "+data[i][4]);
}
for(int i=0;i
就我个人而言,我会寻找一个好的CSV库/parsery如果您提到您当前的方法不起作用。你能给我们描述一下这种方法是什么吗?你的想法是什么?如何/在哪里失败?这种方法应该是有帮助的。一旦您能够以一种方便的方式获取数据,那么您就可以尝试在所需的时间段提取数据,方法是隔离几年或几个月
for(int i = 0; i < rows; i++)
{
    System.out.println("The date is: "+data[i][0]);
    System.out.println("Buffalo's average is: "+data[i][4]);
}