【问题标题】:How to split a string by an empty string delimiter [duplicate]如何用空字符串分隔符分割字符串[重复]
【发布时间】:2018-09-13 14:50:24
【问题描述】:

在java中,

String.split(""); 

是可能的。 例如)

String[] str = "Hello world!".split("")

像这样,我想在没有转义序列的情况下拆分字符串。 但是在 C# 中,我试过了,IDE 说“错误”。有什么解决办法吗?

编辑)
代码:

String[] str = "Hello world!".split("");

结果是 str[0] = H, str[1] = e, ...(在 java 中)

在 C# 中,我尝试过

strI[i] = "Hello World!".Split('');

结果是

'error CS1011: 空字符文字 我想用空文字分割字符串。

【问题讨论】:

  • 嗨@Yeongsoo,你能发布你尝试过的代码吗?
  • 您对此有何期待? "Hello world!".split("") 出了什么问题?
  • 你想要每个字符? ToCharArray().
  • 来自javadocpublic static String[] split(String str) 将提供的文本拆分为一个数组,使用空格作为分隔符。空白由 Character.isWhitespace(char) 定义。
  • 在C#Documentation中也是一样的,我们假设默认的split char是空格。 var result = "MyString".Split();var input = "MyString here"; var result = input.Split();

标签: c# split


【解决方案1】:

请注意,String.Split() 的任何重载方法都不会像您使用的那样接受字符串作为第一个参数。以下是可能的overloaded methods

您正在寻找的是将字符串拆分为字符。为此,您可以依赖 String.ToCharArray Method,它将将此实例中的字符复制到 Unicode 字符数组。:

char[] charArray = "Hello world!".ToCharArray();

这样我们就可以使用其索引访问每个字符,这意味着 - charArray[0] 将是 H

如果您需要将拆分的字符转换为字符串数组,则意味着您可以使用以下内容:

string[] strArray = "Hello world!".Select(x=> x.ToString())
                                  .ToArray();

【讨论】:

  • 如果您只想按索引读取字符,则不需要 ToCharArray。 "hello"[1] == 'e' 是真的。
【解决方案2】:

您收到错误的原因是没有签名匹配您调用的方法。换句话说,当你调用 Split 方法时,你必须将第一个参数作为字符数组或字符串数​​组传递,而你将第一个参数作为简单的字符串传递。

以下调用不会抛出任何错误,因为它与 Split 方法的签名匹配。

string[] sArray = s.Split(new string[] {""}, StringSplitOptions.None);

但是,上述方法不会产生任何结果,因为结果数组将只包含一个元素,其值为原始字符串。

如果您的目标是将字符串拆分为单个字符,那么您可以使用如下代码。

string s = "some string";
var splitString = s.ToCharArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多