9

我遇到了Double.valueOf(line.split(",")[1]) 我熟悉的代码,Double.valueOf()我的问题是理解[1]句子中的含义。搜索的文档没有找到任何东西。

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

4 回答 4

14

这意味着你line是一个用逗号分隔的数字字符串。
例如:"12.34,45.0,67.1"

line.split(",")返回一个字符串数组。
例如:{"12.34","45.0","67.1"}

line.split(",")[1]返回数组的第二个(因为索引从 0 开始)项。
例如:45.0

于 2016-04-04T13:27:37.363 回答
3

爪哇public String[] split(String regex)

围绕给定正则表达式的匹配拆分此字符串。

返回:通过围绕给定正则表达式的匹配拆分此字符串计算的字符串数组

因此,[1]获取在 中找到的数组的第二项String[]

于 2016-04-04T13:29:49.443 回答
3

这意味着是以where实际上是一个数字line开头的字符串。a,bb

crtValue是 的doubleb

于 2016-04-04T13:28:11.250 回答
2

您的代码尝试从中获取第二个doublereader.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);转换Stringdouble

不要忘记NumberFormatException如果字符串不包含 parseable 可能会抛出double

于 2016-04-04T13:27:45.327 回答