【发布时间】:2026-01-10 05:50:02
【问题描述】:
我有一个修剪字符串方法不完全工作的问题我已经查看了 MS Docs 并查看了论坛但没有运气......这可能是一些简单的东西或缺少其他一些参数。这只是一个样本, 请注意,我需要在 # 之前和之后提取文本,因此我计划使用 # 作为分隔符。修剪开始@#,修剪结束@#。根据我的理解,我不能使用最后一个索引或替换,它们没有方向。但也许我误解了 MS 文档关于修剪 Start 和 End 的问题...... 谢谢!
Dim str As String = "this is a #string"
Dim ext As String = str.TrimEnd("#")
MsgBox(ext)
回答: 我找到了解决我的问题的方法,如果您遇到类似的情况,请参见下文: 第一个:修剪端不会扫描右侧的“字符”,因为我最初认为它只会从右侧删除它......我会说一个弱功能:)。 IndexOf 方向 ID 将是一个非常简单且有用的方法。问候我的回答由 Andrew 回答,谢谢!
如果您尝试根据 CHARACTER 分隔将 SINGLE String INTO - QTY 拆分并相应地填充字段,那么现在还有另一种解决方法。 答案是 ArrayList。 Array List 将标识每个字符串,这样您就可以避免重复填充等。之后您可以使用 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
【问题讨论】:
-
这不是 TrimEnd 所做的。你需要 LastIndexOf() + SubString()
-
该字符串的结尾没有“#”。
-
也许您可以解释一下您实际想要实现的目标,而不是指望我们通过没有实现目标的代码来解决问题。
-
@jmcilhinney 我猜他想从字符串中删除哈希字符。
-
我们为什么要猜测?如果我们必须猜测,那么这不是一个有效的问题,所以应该关闭它。