Что означает line.split(",")[1] [Java]?

Я наткнулся на код, где я столкнулся с Double.valueOf(line.split(",")[1])Я знаком с Double.valueOf() и моя проблема состоит в том, чтобы понять, что делает [1] значит в предложении. Поисковые документы ничего не нашли.

while ((line = reader.readLine()) != null)
                double crtValue = Double.valueOf(line.split(",")[1]);

4 ответа

Решение

Это означает, что ваш line это строка чисел, разделенных запятыми.
например: "12.34,45.0,67.1"

line.split(",") возвращает массив строк.
например: {"12.34","45.0","67.1"}

line.split(",")[1] возвращает 2-й(потому что индексы начинаются с 0) элемент массива.
например: 45.0

Это значит line это строка, начинающаяся с a,b где b на самом деле число.

crtValue это double ценность b,

Джава public String[] split(String regex)

Разбивает эту строку вокруг совпадений заданного регулярного выражения.

Это

Возвращает: массив строк, вычисленный путем разбиения этой строки вокруг совпадений заданного регулярного выражения

Итак [1] получает второй элемент массива, найденного в String[],

Ваш код пытается получить второе double значение от reader.readLine(),


  1. String numbers = "1.21,2.13,3.56,4.0,5";
  2. String[] array = numbers.split(","); разделить строку ввода запятой
  3. String second = array[1]; получить второй элемент из массива. Нумерация массива Java начинается с 0 индекс.
  4. double crtValue = Double.valueOf(second); перерабатывать String в double

Не забывайте о NumberFormatException это может быть брошено, если строка не содержит анализируемый double,

Другие вопросы по тегам