C#如何按空格将字符串拆分成几个数组

时间:2017-11-03 07:11:22

标签: c# arrays string

所以我有一个像这样的字符串输入:

string pianist = "Johann Sebastian Bach";

如何按空格分割,以便我可以访问:

pianist[0] == "Johann"
pianist[1] == "Sebastian"
pianist[2] == "Bach"

我试过

string test = pianist.Split(' ');

但它不起作用。

9 个答案:

答案 0 :(得分:2)

您不需要传递split方法的任何参数。检查感兴趣的MSDN帖子:

  

如果separator参数为null或包含   没有字符,该方法将空白字符视为   分隔符。空格字符由Unicode定义   如果将它们传递给Char.IsWhiteSpace,它们将返回true   方法。   String.Split Method

string pianist = "Johann Sebastian Bach";
var pianistArray = pianist.Split();

结果:

pianistArray[0] == "Johann"
pianistArray[1] == "Sebastian"
pianistArray[2] == "Bach

答案 1 :(得分:2)

问题是你的期望是错误的。

  

所以我可以访问pianist[0] == "Johann"

由于pianist是您的原始字符串,因此尝试使用索引访问它将导致chars位于字符串中的此位置。 (因为字符串由char[]表示。)

如果查看documentation of the method Split(),您会看到它返回string[]而不是您尝试过的字符串。您需要首先在额外变量中捕获此返回值,然后您可以按照计划的方式访问它:

string pianist = "Johann Sebastian Bach";
string [] returnedArray = pianist.Split(' ');

string johann = returnedArray[0];
string sabastian = returnedArray[1];
string bach = returnedArray[2];

答案 2 :(得分:2)

你可以试试这个;

string[] pianist = "Johann Sebastian Bach".Split(' ');

你会得到预期的结果。

答案 3 :(得分:2)

  

string test = pianist.Split(''); //不行吗?

因为String类的.Split()方法将字符串拆分为基于数组中字符的子字符串。你不能将它们分配给一个字符串,你应该使用一个数组。

  

如何使您的代码有效?

将类型更改为string[]以保存拆分结果:

 string[] splitResult = pianist.Split(' ');

答案 4 :(得分:1)

您正在尝试将字符串数组保存在字符串变量下。试试这个:

string test = "Johann Sebastian Bach";
string[] separated = test.Split(' ');
foreach(string sub in separated)
{
    Console.WriteLine(sub);
}

产生

Johann Sebastian Bach

答案 5 :(得分:0)

拆分功能必须指定要拆分的值。你的情况是“”,而不是“”。 这是答案

 @IBOutlet weak var updateIdView: UIView!


let  textField: UITextField = updateIdView.viewWithTag(textFieldTag) as! UITextField
     textField.removeFromSuperview()

答案 6 :(得分:0)

下面应该看到你没有正确地给出空间

 var res = pianist.Split(new[] {' '});

答案 7 :(得分:0)

string test = pianist.Split(' ');

这不起作用,因为Split的结果是一个数组。这样做:

string[] test = pianist.Split(' ');

不,您可以访问您已尝试的字词:

test[0]
test[1]
...

答案 8 :(得分:0)

试试这个:

string pianist = "Johann Sebastian Bach";
var result = pianist.Split(' ');

或者:

string pianist = "Johann Sebastian Bach";
string[] result = pianist.Split(' ');