vb.net: можно ли разделить строку строкой

OK - нашел ответ, который искал.

это класс XmlConvert.

     var el_date = (XmlElement)el_root.SelectSingleNode("./DateVal");
     //WANTED: el_date.Value = 2010-02-18 01:02:03 (as a DateTime Object)
     var val_date = XmlConvert.ToDateTime(el_date.InnerText);
     //ACTUAL: el_date.InnerText="2010-02-18T01:02:03"

     var el_duration = (XmlElement)el_root.SelectSingleNode("./TimeVal");
     //WANTED: el_date.Value = 10 hours, 5 minutes, 3 seconds (as a TimeSpan Object)
     var val_duration = XmlConvert.ToTimeSpan(el_duration.InnerText);
     //ACTUAL: el_date.InnerText="PT10H5M3S"

Ответ Марка был верным с точки зрения чтения в целом строго типизированном классе, но в этом случае я хотел прочитать только один строго типизированный элемент / узел.

29
задан l--''''''---------'''''''''''' 28 October 2009 в 18:44
поделиться

7 ответов

Попробуйте следующее:

string[] myDelims = new string[] { "<beginning of record>" };
split = temp_string.Split(myDelims,StringSplitOptions.None);

Выполнение этого через преобразователь кода приводит к следующему:

Dim myDelims As String() = New String() { "<beginning of record>" }
split = temp_string.Split(myDelims, StringSplitOptions.None)

Вам также может потребоваться избежать шевронов, например:

"\< beginning of record \>"
37
ответ дан 28 November 2019 в 01:06
поделиться

@Matthew Jones 'ответ в VB.NET

Dim delim as String() = New String(0) { "<beginning of record>" } 
split = temp_string.Split(delim, StringSplitOptions.None)
16
ответ дан 28 November 2019 в 01:06
поделиться

Вы можете посмотреть на метод Regex.Split ().

Кажется, он работает

  dim s as string = "you have a <funny> thing <funny> going on"
  dim a() as string = Regex.Split(s,"<funny>")
  for each b as string in a 
     Response.Write( b & "<br>")
  next
6
ответ дан 28 November 2019 в 01:06
поделиться

Вы можете написать себе метод расширения, чтобы упростить его (на основе ответа Мэтью Джонса )

(думаю, я должен показать пример как ну ...)

Dim results = "hay needle hay needle hay".Split("needle")
' results(0) = "hay "
' results(1) = " hay "
' results(2) = " hay"

... C # ...

public static class Tools
{
    public static string[] Split(this string input, params string[] delimiter)
    {
        return input.Split(delimiter, StringSplitOptions.None);
    }
}

... VB.Net ...

Module Tools
    <Extension()> _
    Public Function Split(ByVal input As String, _
                          ByVal ParamArray delimiter As String()) As String()
        Return input.Split(delimiter, StringSplitOptions.None)
    End Function
End Module
6
ответ дан 28 November 2019 в 01:06
поделиться

похоже, это работает

    Dim myString As String = "aaajjbbbjjccc"
    Dim mySplit() As Char = "jj".ToCharArray
    Dim myResult() As String = myString.Split(mySplit, StringSplitOptions.RemoveEmptyEntries)
3
ответ дан 28 November 2019 в 01:06
поделиться

Если на самом деле вы разделяете XML, считанный в строку, то не используйте строки VB для сделай эту работу. Используйте XSLT. VB / C # имеет методы для рендеринга XML с помощью XSLT. Это будет намного быстрее и надежнее.

2
ответ дан 28 November 2019 в 01:06
поделиться

Я так не думаю, для этого нужны только символы. Вы можете сделать некрасивый хакерский прием и сначала заменить все экземпляры строки некоторым символом, который еще не существует в строке, а затем разделить этот символ.

Отредактировано для добавления: я думаю, что Regex.Split может для разделения регулярного выражения, поэтому, если вы создадите простое регулярное выражение, которое представляет собой просто строку, которую вы хотите разделить, это должно сработать.

1
ответ дан 28 November 2019 в 01:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: