VB. net Функция триммера - PullRequest
0 голосов
/ 04 мая 2020

У меня проблема с обрезкой метода строк, НЕ работающего полностью. Я просмотрел MS Docs и посмотрел форумы, но безуспешно ... Возможно, что-то простое или какой-то другой параметр отсутствует. Это всего лишь пример. Обратите внимание: мне нужно подобрать текст до и после #, поэтому я планировал использовать # в качестве разделителя. Trim start @ #, Trim End @ #. Я не могу использовать последний индекс или заменить в моем понимании, у них нет направления. Но, возможно, я неправильно понял документацию MS, касающуюся обрезки Start и End, а также ... спасибо!

 Dim str As String = "this is a #string"
        Dim ext As String = str.TrimEnd("#")
        MsgBox(ext)

ОТВЕТ: Я нашел решение для моей проблемы, если у вас возникли аналогичные проблемы, см. Ниже: 1st: Trim end НЕ будет сканировать «символ» справа, как я изначально думал, он просто удалит его справа .... Слабая функция, я бы сказал :). IndexOf ID направления будет очень простым и полезным. С уважением На мой ответ ответил Андрей, спасибо!

Теперь есть другой способ обойти это, если вы попытаетесь разделить ОДНУ строку в QTY на основе разделения CHARACTER и заполнить поля соответственно. Ответ ArrayList . Array List будет идентифицировать каждую строку, чтобы вы могли избежать повторных популяций и т. Д. c. После вы можете использовать CASE или IF для заполнения соответственно.

Dim arrList As New ArrayList("this is a # string".Split("#"c)) ' Will build the list of your strings
Dim index As Integer = 1 ' this will help us index the strings 1st, 2nd and etc.
For Each part In arrList 'here we are going thru the list
Select Case index ' Here we are identifying which field we are populating

       Case 1 '1st string(split)
         MsgBox("1 " & arrList(0) & index) '1st string value left to SPLIT arrList(0). 

       Case 2 '2nd string(split)
         MsgBox("2 " & arrList(1) & index) '2nd string value left to SPLIT arrList(1).  
 End Select

         index += 1 'Here we adding one shift thru strings as we go 

 Next

Ответы [ 3 ]

0 голосов
/ 04 мая 2020
Dim str As String = "this is a #string"
Dim parts = str.Split("#"c)

For Each part in parts
    Console.WriteLine($"|{part}|")
Next

Выход:

|this is a |
|string|
0 голосов
/ 05 мая 2020

Может быть, есть лучший способ, поскольку мы знаем, что есть несколько вещей, которые делают одно и то же. Решение, которое я использовал ниже:

Dim arrList As New ArrayList("this is a # string".Split("#"c)) ' Will build the list of your strings
Dim index As Integer = 1 ' this will help us index the strings 1st, 2nd and etc.
For Each part In arrList 'here we are going thru the list
Select Case index ' Here we are identifying which field we are populating

       Case 1 '1st string(split)
         MsgBox("1 " & arrList(0) & index) '1st string value left to SPLIT arrList(0). 

       Case 2 '2nd string(split)
         MsgBox("2 " & arrList(1) & index) '2nd string value left to SPLIT arrList(1).  
 End Select

         index += 1 'Here we adding one shift thru strings as we go 

 Next
0 голосов
/ 04 мая 2020

Вместо:

Dim str As String = "this is a #string"
Dim ext As String = str.TrimEnd("#")

Попробуйте:

Dim str As String = "this is a #string"
Dim ext As String = str.Replace("#", "")
...