PDA

View Full Version : سوال: جداکردن اعداد در یک رشته



mkk_ce
دوشنبه 26 تیر 1391, 14:02 عصر
سلام
من می خواهم اعداد داخل یک رشته رو که به هم چسبیدند رو خارج کنم
سعس کردم با استفاده از Regex این کار و انجام بدم اما نتونستم.
کسی از دوستان می تونه این کار رو انجام بده؟

مثال :



-5.821098e-02-5.820515e-02-5.819932e-02-5.819349e-02-5.818766e-02-5.818184e-02-5.817601e-02-5.817018e-02-5.816435e-02-5.815852e-02


ممنونم.

M.KH-SH
دوشنبه 26 تیر 1391, 14:16 عصر
دوست عزیز به این صورت استفاده کن:::


شما تمام اعداد رو داخل یک متغییر بریز و بعد از کد زیر استفاده کن


dim str as string="-5.821098e-02-5.820515e-02-5.819932e-02-5.819349e-02-5.818766e-02-5.818184e-02-5.817601e-02-5.817018e-02-5.816435e-02-5.815852e-02"
dim a() as string=str.split(new char() {"-"})

حالا تمام اعدادی که با علامت " - " از هم جدا شدن رو به صورت تفکیک شده در اختیار دارین که میتونین با یک متغییر تمام اونها رو به صورت تک تک نمایش بدین به این صورت:::


for i as integer=0 to a.length-1

listbox.items.add(a(i))

end for


اگه سئوالی بود و مشکل حل نشد خبر بده

mkk_ce
دوشنبه 26 تیر 1391, 14:24 عصر
از جوابتون ممنون. اما این رشته می تونه اولیش منفی نباشه و اگه هم باشه چیزی که شما نوشتید اینطوری جواب می ده :

5.821098e 02 5.820515e 02 5.819932e 02 5.819349e 02 5.818766e 02 5.818184e 02 5.817601e 02 5.817018e 02 5.816435e 02 5.815852e 02

مثال دیگه :

1.457082e-02 1.457678e-02 4.668483e-03-9.260070e-03-2.318881e-02-3.243645e-02-3.243049e-02-3.242454e-02-3.241858e-02-3.241263e-02

M.KH-SH
دوشنبه 26 تیر 1391, 14:37 عصر
روش همینه و شما باید ابتکار عمل به خرج بدین و بتونین با کدهای بازی کنین بعد خودتون به راحتی میتونین تفکیک کنین
فقط باید نقاط اشتراک رو پیدا کنین همین

mkk_ce
دوشنبه 26 تیر 1391, 15:52 عصر
من از این عبارت استفاده می کنم ولی فقط عدد اولی رو بر می گردونه!


Dim col() As String = Regex.Split(K, "\b(\+|-)[0-9]+(\.[0-9]+)(e[+-][0-9]+)+")

M.KH-SH
دوشنبه 26 تیر 1391, 18:29 عصر
خوب این روش اشتباه است شما قدم به قدم این کار رو انجام بده
یعنی اول کارکتر - رو جدا کنی و بعد از اون کارکتر = رو جدا کنی
این کار نیاز به حلقه داره

Saman_12
سه شنبه 27 تیر 1391, 00:35 صبح
از این عبارت استفاده کنید جواب میده :


\b(\+|-)?\d+(\.|)(\d*e?)