【问题标题】:Splitting a String using 2 Characters使用 2 个字符拆分字符串
【发布时间】:2023-03-12 10:57:01
【问题描述】:

我目前在我的代码中拆分句点,但在运行它时发现了一些问题。我想知道如何拆分“。”而不仅仅是“。”

当前代码:

Dim words As String() = item.Split(New Char() {"."c})

梦想密码:

Dim words As String() = item.Split(New Char() {". "c})

它不允许我在句号之后添加额外的空间,有解决方法吗?

【问题讨论】:

  • 它不允许这样做,因为 char 数组包含字符而不是 2 个字符串。一种方法是替换为字符串中不太可能出现的内容,例如|,然后拆分。请停止在标题中添加语言标签 - 这就是标签的用途
  • @Plutonix 你能详细说明一下吗?

标签: arrays string vb.net split char


【解决方案1】:

要对此进行扩展,看看Replace 首先是如何使用的?首先你把这两个字符变成一个可以唯一识别的字符,然后你可以有效地分割它。

Dim words As String() = item.Replace(". ", "|").Split(New Char() {"|"c})

您可能还可以像这样简化它:

Dim words As String() = item.Replace(". ", "|").Split("|"c)

假设您使用的是Option Strict On - 如果没有,您可以像这样简化它,因为字符串会自动转换为字符:

Dim words As String() = item.Replace(". ", "|").Split("|")

【讨论】:

  • 啊,好吧,我以为他在说这个。我把它写成两行,但你的一行真是太漂亮了。谢谢你!
【解决方案2】:

你应该使用String.Split的String.Split Method (String(), StringSplitOptions)重载:

Dim s = "1. 2. 3. 4.5.6"
Dim a = s.Split({". "}, StringSplitOptions.None)
Console.Write(String.Join(vbCrLf, a))

输出:

1
2
3
4.5.6

(根据 Visual Studio 的版本,您可能需要类似 New String() {". "} 而不是 {". "}。)

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 2013-10-12
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多