2010-01-28 89 views
1

需要在vb中取一个字符串并将其拆分。还需要查看两个返回的值并返回包含“domain1.com”的值。管道是分隔符。字符串拆分和搜索VB.NET

txtEmailFrom.Text = "[email protected]|[email protected]" 
Dim brokened() As String 
brokened = Split(txtEmailFrom.Text, "|") 

不知道从哪里何去何从......

+0

你可能想看看这个页面,它向你展示了你在VB.net中分割,搜索和解析字符串的许多不同方法 http://msdn.microsoft.com/en-us/library/hzcd8ze0%28VS.80%29.aspx – 2010-01-28 22:51:38

回答

0
txtEmailFrom.Text = "[email protected]|[email protected]" 
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) = ...之前添加数组边界检查。

0
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

(我被打断写我的答案,让我下定决心完成!)

你可以试试这个:

Module Module1 

    Sub Main() 

     Dim email As String = "[email protected]|[email protected]" 

     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 

希望这有助于。 Jas。

+0

using firstOrDefault will不返回数组或ienumeration – Fredou 2010-01-28 19:30:08

+0

@Fredou - 您的权利,我误解了需求。相应地更改了代码。 – 2010-01-28 19:41:27

2
For Each email In brokened 
    If email.Contains("domain1.com") Then 
     Return email 
    End If 
Next 
+1

有时间和地点的LINQ,我会说这不是其中之一,像你这样的老FOR循环在这里效果最好,并且更容易被其他人阅读。 – 2010-01-28 21:55:36

0

我把splited电子邮件列表中,并使用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
Dim test As String = "[email protected]|[email protected]" 
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