Hogy osszam fel ezt a stringet egy tömbbe? C#
Adott pl. egy ilyen string(de a nevek és az előjelek változhatnak):
+alma-banán-szilva+körte
Ezt kellene felosztanom, egy ilyen tömbbe:
string[] tomb = {"+alma","-banán","-szilva","+körte"};
A Split függvénnyel ugye eltűnnek az előjelek. Object és List nem használható.
Csak ötlet, de én regex-el csinálnám.
Python-ban pl így:
import re
x='+alma-banán-szilva+körte'
print(re.findall('[+-]\w+',x))
"+alma-banán-szilva+körte".Replace("+", " +").Replace("-", " -").Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries)
persze ha alapból van benne szóköz, akkor ez nem jó.. akkor keress egy másik karaktert ami nemm szerpelhet, pl. soremelés?
Illetve azt hozzátenném, hogy ez nem egy hatékony módja a darabolásnak, csak akkor csináld így, ha rövid a szöveged vagy nem számít a sebesség.
De legalább gyorsan megvan:)
#3 Köszönöm szépen, pont ilyesmire gondoltam. :)
Nincs szóköz benne és nagyon max 4-5 szó hosszú a string, szóval tökéletes.
Én csak egy 15 soros dupla while ciklussal tudtam megcsinálni..
Amúgy itt van regex-szel is.. talán még rövidebb, mert csak 1x kell cserélni:
new System.Text.RegularExpressions.Regex("(.)([+-])").Replace("+alma-banán-szilva+körte", "$1 $2").Split(' ')
Regex ennél azért okosabb. Nem így kell használni. Látom a fenti python példa nem ment át. Megcsináltam ugyanezt C#-ban is.
De átjött, de azért láthatod, hogy csere+split jóval tömörebb kód, mint a matcheket utána kigyűjteni. Nyilván én is tudtam volna így.
Pont ezt akartam volan elkerülni amit írtál.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!