2016-04-04 39 views
5

Mi sono imbattuto nel codice in cui mi ero imbattuto con Double.valueOf(line.split(",")[1]) Ho familiarità con Double.valueOf() e il mio problema è capire cosa significa [1] nella frase. I documenti ricercati non hanno trovato nulla.Cosa significa line.split (",") [1] significa [Java]?

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

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – Reimeus

+2

'line # split' restituisce un array,' [1] 'indica il secondo elemento dell'array restituito. – SomeJavaGuy

+0

@KevinEsche uhm, no, il 2 ° elemento; a meno che tu non significhi che l'elemento nell'indice 0 sia lo 0 ° elemento – fge

risposta

9

Significa che il numero line è una stringa di numeri separati da virgole.
ad esempio: "12.34,45.0,67.1"

Il line.split(",") restituisce un array di stringhe.
esempio: {"12.34","45.0","67.1"}

line.split(",")[1] ritorna il 2 ° (perché gli indici iniziano a 0) elemento della matrice .
esempio: 45.0

2

Il codice cerca di ottenere il secondo valore double da reader.readLine().


  1. String numbers = "1.21,2.13,3.56,4.0,5";
  2. String[] array = numbers.split(","); dividere la linea di ingresso da commma
  3. String second = array[1]; ottenere il secondo elemento dalla matrice. La numerazione degli array Java inizia dall'indice 0.
  4. double crtValue = Double.valueOf(second); convertire String al double

Non dimenticare NumberFormatException che può essere generata se la stringa non contiene un analizzabile double.

3

Significa line è una stringa che inizia con a,b dove b è in realtà un numero.

crtValue è il valore double di b.

3

Java public String[] split(String regex)

Spaccature questa stringa intorno partite della data espressione regolare.

It

Returns: la matrice di stringhe calcolato suddividendo questa stringa intorno partite della data espressione regolare

Così il [1] ottiene il 2 ° punto della array trovato in String[].