2014-07-11 4 views
6

http://www.tutorialspoint.com/java/java_string_split.htmJava - String split() Metodo, pari a zero e il limite negativo

Ecco la sintassi di questo metodo: public String[] split(String regex, int limit) o public String[] split(String regex)

Nel link qui sopra, posso capire gli esempi Str.split("-", 2) e Str.split("-", 3). Tuttavia, non esco dallo Str.split("-", 0), qual è il ruolo di zero del limite? In alcuni esempi, ho anche incontrato dei limiti negativi, che cos'è questo? Grazie mille

+4

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String,%20int% 29 –

+0

Copia-incolla per comodità: "fn è non positivo, quindi il pattern verrà applicato il maggior numero possibile di volte e l'array può avere una lunghezza qualsiasi. Se n è zero, il pattern verrà applicato il maggior numero possibile di volte, l'array può avere una lunghezza qualsiasi e le stringhe vuote finali verranno scartate. " – laune

+0

@laune Hai perso la frase precedente! Non sorprende, poiché * non positivo * non è ** ovviamente ** negativo. * Se n è non positivo, il pattern verrà applicato il maggior numero possibile di volte e l'array può avere una lunghezza qualsiasi. Se n è zero, il pattern verrà applicato il maggior numero possibile di volte, l'array può avere una lunghezza qualsiasi e le stringhe vuote verranno eliminate. * Quindi, uno zero scarta i record vuoti e un negativo li conserva! –

risposta

11

Il limite parametro controlla il numero di volte in cui viene applicata la modello e colpisce quindi la lunghezza risultante array. Abbiamo possibili valori per questo limite:

  1. Se il limite n è maggiore di a zero allora il modello verrà applicato al massimo n - 1 volte, la La lunghezza array's non sarà maggiore di n e l'ultima voce array's conterrà tutti gli input oltre l'ultimo delimitatore con corrispondenza.

  2. Se n è non positivo allora il modello viene applicato come numero di volte possibile e il array può avere qualsiasi lunghezza.

  3. Se n è zero, il modello verrà applicato come numero di volte possibile, il array può avere qualsiasi lunghezza e finali stringhe vuote saranno scartati.

È possibile leggere altro here.

+0

In n è zero, verranno eliminate anche le stringhe vuote iniziali? 0 :) prima di testarlo ... –

+0

@darkchampionz Il pattern funziona solo sulla stringa su cui si sta eseguendo il metodo split. Non considererà le stringhe in arrivo prima o dopo *** Str *** – GingerHead

1

Str.split("-", 0) equivale a Str.split("-"). Io, non c'è limite.

6

Str.split("-",0) è uguale Str.split("-")