PDA

View Full Version : مبتدی: چطور اعداد رو از يك رشته جدا كنم



swallow.pa
شنبه 09 دی 1391, 11:04 صبح
با سلام خدمت دوستان
من يك رشته دارام مثل
HDE12509VTY

حالا مي خوام اعداد رو از توي اون استخراج كنم
بنظر شما به چه روشي امكان پذير است
ممنون

amin32
شنبه 09 دی 1391, 13:25 عصر
Dim s, temp As String
s = "HDE12509VTY"
For i = 1 To Len(s)
If Asc(Mid(s, i, 1)) >= Asc("0") And Asc(Mid(s, i, 1)) <= Asc("9") Then
temp = temp + Mid(s, i, 1)
EndIf
Next
MsgBox(temp)


فقط دقت کنید که این روش تمام اعداد رو از رشته تشخیص میده. یعنی اگر رشته h5tt5j7 باشه عدد 557 رو برمیگردونه.

mc_laren
شنبه 09 دی 1391, 13:34 عصر
باسلام

Dim str As String = "HDE12509VTY"
' اعداد درون رشته
Dim Str1 As String = ""
For i As Byte = 0 To str.Length - 1
If IsNumeric(str(i)) Then
Str1 += str(i)
End If
Next

ROSTAM2
شنبه 09 دی 1391, 15:36 عصر
با سلام
اینم یه روش دیگه:


Dim str As String = "HDE12509VTY"
For Each Word As Char in str
Select Case Word
Case 0 to 9
Msgbox (Word)
End Select
Next (Word)

shahryari
شنبه 09 دی 1391, 16:19 عصر
اینم یک روش


Dim s As String = "fd4654fdf46fg4"
Dim d As String = ""
For Each f As Char In s
If IsNumeric(f) = True Then
d &= f
End If
Next
MsgBox(d)

gilsoft
شنبه 09 دی 1391, 17:00 عصر
سلام دوست عزیز

اینم روش پیشنهادی من : (امیدوارم که تکراری نباشه :افسرده:)

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim str As String = "HDE12509VTY"
Dim c As Char : Dim Num As String = ""
Dim Value As Integer
For i As Int16 = 1 To str.Length
c = Mid(str, i, 1)
If Char.IsDigit(c) Then Num &= c
Next
Value = CInt(Num)
Console.WriteLine(Value)
End Sub

مهرداد صفا
یک شنبه 10 دی 1391, 08:40 صبح
سلام
با استفاده از linq:

MsgBox((From character In text Where IsNumeric(character) Select character).ToArray)

sh2007
چهارشنبه 13 دی 1391, 20:12 عصر
سلام
با استفاده از linq:

MsgBox((From character In text Where IsNumeric(character) Select character).ToArray)
linq بهترين روشه براي اين كارها