Zdá sa, že rozdelená funkcionalita sa líši medzi Java a JavaScript.
Nepotrebujem presne zodpovedať určitému pravidelnémuvýrazové kritériá alebo použitie regulárny výraz založený na hľadáčiku. Môj problém spočíva v tom, že sa po konečnom priradení rozdeleného regulárneho výrazu sledujú prázdne zhody (čo je jednoduchá množina znakov, nie výraz).
Nižšie je uvedený príklad výstupu, ktorý sa snažím dosiahnuť a čo skutočne dostávam.
Jáva
("~#~~#~~#~A~#~B~#~C~#~D~#~E~#~~#~~#~").split("~#~")
/* results with an array of length 8 */ (java.lang.String[]) [, , , A, B, C, D, E]
Javascript
"~#~~#~~#~A~#~B~#~C~#~D~#~E~#~~#~~#~".split("~#~")
/* results with an array of length 11 */ ["", "", "", "A", "B", "C", "D", "E", "", "", ""]
Naozaj to nemôžem dať za dobré vysvetlenie, pretože pracujem s Java aplikáciou a rozdelenie mi spôsobuje problémy, chcem rovnaký výsledok ako v JavaScripte. Ako to môžem získať?
odpovede:
30 pre odpoveď č. 1Javadoc dňa split(String regex)
:
Táto metóda funguje, ako keby vyvolala metódu rozdelenia dvoch argumentov s daným výrazom a argumentom limitu nula. Koncové prázdne reťazce preto nie sú zahrnuté vo výslednom poli.
Javadoc dňa split(String regex, int limit)
:
Ak n nie je kladné, potom bude vzorecaplikovať toľkokrát, koľkokrát je to možné a pole môže mať akúkoľvek dĺžku. Ak je n nula, vzor sa aplikuje toľkokrát, koľkokrát je to možné, pole môže mať akúkoľvek dĺžku a koncové prázdne reťazce sa zahodia.
Takže ... split("~#~", -1)
by mal urobiť trik.
7 pre odpoveď č. 2
Dokumentácia Java k split () jasne uvádza, že koncové prázdne reťazce NIE budú zahrnuté.
Táto metóda funguje ako pri vyvolaní metódy rozdelenia dvoch argumentov pomocou daný výraz a hraničný argument nula. Trailing prázdne reťazce nie sú preto zahrnuté do výsledného poľa.
ale môžete to dosiahnuť
("~#~~#~~#~A~#~B~#~C~#~D~#~E~#~~#~~#~").split("~#~" , -1)
čo je preťažená metóda
1 pre odpoveď č. 3
Java "s split()
dokumentácia jasne uvádza, že koncové prázdne reťazce budú NOT byť zahrnuté.
Táto metóda funguje, akoby vyvolala metódu split s dvoma argumentmi pomocou daný výraz a limitný argument nula. Koniec prázdny reťazce preto nie sú zahrnuté vo výslednom poli.