String Split & Search VB.NET - PullRequest
       19

String Split & Search VB.NET

1 голос
/ 28 января 2010

Нужно взять строку в vb и разбить ее. Также необходимо просмотреть два возвращаемых значения и вернуть значение, которое содержит «domain1.com». Трубопроводы являются разделителем.

txtEmailFrom.Text = "john@huno.com|james@domain1.com"
Dim brokened() As String
brokened = Split(txtEmailFrom.Text, "|")

Не знаю, куда идти отсюда ...

Ответы [ 7 ]

2 голосов
/ 28 января 2010
For Each email In brokened
    If email.Contains("domain1.com") Then
        Return email
    End If
Next
0 голосов
/ 28 января 2010
Dim test As String = "john@huno.com|james@domain1.com"
Dim brokend() As String
brokend = test.Split(New String() {"|"}, StringSplitOptions.None)

For Each email As String In brokend
    If email.EndsWith("domain1.com") Then
        Return email;
    End If
Next
0 голосов
/ 28 января 2010

Я бы поместил разделенное письмо в список и использовал бы метод list.FindAll, чтобы найти все domain1.com

Я собираюсь написать это на C #, я более знаком с этим, но это должно быть то же самое для vb.net

List<string> emails = new List<string>();
emails.AddRange(txtEmailFrom.Text.Split("|".ToCharArray()));

emails.FindAll(s=> {return s.Contains("domain1.com");} );

что-то в этом роде ... писать без IDE

0 голосов
/ 28 января 2010

(я прервал написание своего ответа, поэтому я полон решимости закончить!)

Вы можете попробовать это:

Module Module1

    Sub Main()

        Dim email As String = "john@huno.com|james@domain1.com"

        Dim brokened() As String
        brokened = Split(email, "|")

        Dim k As List(Of String) = (From j As String In brokened _
                                    Where j.Contains("domain1.com") _
                                    Select j).ToList()

        For Each u As String In k
            Console.WriteLine(u)
        Next


    End Sub

End Module

Надеюсь, это поможет. Иак.

0 голосов
/ 28 января 2010
Dim brokened() As String = txtEmailFrom.Text.Split("|"c)

Dim returnValue as String 

For each item as String in brokened
  If item.Contains("domain1.com") Then
    returnValue = item
  End If 
Next
0 голосов
/ 28 января 2010

, если вы можете использовать LINQ

 txtEmailFrom.Text = "john@huno.com|james@domain1.com"
 Dim result = txtEmailFrom.Text.Split(CChar("|")) _
              .Where(Function(d) d.Contains("domain1.com")).FirstOrDefault
0 голосов
/ 28 января 2010
txtEmailFrom.Text = "john@huno.com|james@domain1.com"
Dim brokened() As String
dim email as string
dim emailSplit() as string
brokened = Split(txtEmailFrom.Text, "|")

for email in brokened
   emailSplit = Split(email, "|")
   if emailSplit(1) = "domain1.com" then
      Console.WriteLine(email)
   end if
next

Я пишу это без IDE, и это может быть стиль VB6.
Надеюсь, это даст вам представление о конвертации в VB.net

РЕДАКТИРОВАТЬ: Конечно, будет лучше добавить проверки для границ массива до этой строки if emailSplit(1) = ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...