Получить последний элемент массива - PullRequest
0 голосов
/ 07 марта 2020

через API я получаю массив с большим количеством разных данных. Но мне нужен только последний элемент.

Переменная sb содержит массив. Но я не могу получить доступ к таким элементам: sb [0] (например)

Если я печатаю переменную sb, это выглядит так:

{"data":[[[1583596801195,279.52],[1583596814340,279.52],[1583596815535,279.44563849372383],[1583596816730,279.2060000000001],[1583596913525,279.2060000000001],[1583596914720,279.28824435146447],[1583596915915,279.52],[1583597211080,279.52],[1583597212275,279.52000000000004],[1583597213470,279.52],[1583597609015,279.52],[1583597610210,279.5199999999999],[1583597707005,279.5199999999999],[1583597708200,279.52000000000004],[1583597709395,279.52],[1583597806190,279.52],[1583597807385,279.52000000000004],[1583597993805,279.52000000000004]]]}

В этом случае мне нужно только последний элемент (279.52000000000004).

Мой код выглядит так:

    URL url = new URL("the URL i get the data from");
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    InputStream instream = con.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            instream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    System.out.println(sb);

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

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Вы можете попробовать это, замените эту строку "System.out.println(sb) на код ниже:

String s = new String(sb);
String d[] = s.split(",");  
System.out.println(d[d.length -1].replaceAll("]", ""));

Это напечатало бы точные данные, которые вы хотите, т.е. 279.52000000000004

0 голосов
/ 07 марта 2020

Если вам нужен только последний элемент, вы не должны добавлять результаты.

Вместо этого замените предыдущее сохраненное значение.

String result = null;
String line = null;
try {
    while ((line = reader.readLine()) != null) {
        //sb.append(line + "\n");
        result = line; // not appending, but replacing
    }
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        instream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
System.out.println(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...