c# - 使用字符串拆分方法时设置数组的大小

标签 c# arrays string split

我试图声明一个大小为 3 的数组,然后使用字符串 split() 方法为数组的每个索引赋值。但是,Split() 方法似乎覆盖了数组的大小,并将其大小设置为 Split() 方法产生的子字符串的数量。

这就是我所做的,

string myString = "Hello world";
string[] myArray = new string[3];

for(int i = 0; i < 3; i++)
    myArray[i] = "";

myArray = myString.Split(' ');

但再一次,当我使用 Split() 方法时,它会覆盖我的数组大小并将其设置为 2,这会给我带来麻烦。

所以我需要知道如何使用 split 方法将字符串添加到大小为 3 的数组中。如果数组包含的项少于 3 个,我想将未分配的索引设置为 ""如果有超过 3 个子字符串,那么我只想取前三个并丢弃其余的。

在此先感谢您的帮助。

最佳答案

可以将字符串拆分的结果设置到一个新的数组中,将内容循环传递到原数组中。如果字符串拆分数组比原始数组长,则应将原始数组设置为新数组以避免越界异常。

var splitArray = myString.Split(' ');
if(splitArray.Length >= myArray.Length)
{
    myArray = splitArray;
}
else
{
    for(int i = 0; i < splitArray.Length; i++)
        myArray[i] = splitArray[i];
}

关于c# - 使用字符串拆分方法时设置数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350748/

相关文章:

java - 捕获多个复选框选择 JSP 参数

c# - 在哪里可以将 "Trim"添加到此 C# 语句?

java - 检测字符串是否具有唯一字符 : comparing my solution to "Cracking the Coding Interview?"

java - 在 Java 和 C 中在运行时调用名为 "string"的方法

c# - Lucene .NET 搜索结果

c++ - cconstructor 中的迭代器 - vector 和数组

C# 方法参数是类的属性

Java 启动时无法正常工作

c# - 向我的应用程序添加服务层

C#:持有一组处理程序对象并找到合适的对象