所以我有一个像这样的字符串输入:
string pianist = "Johann Sebastian Bach";
如何按空格分割,以便我可以访问:
pianist[0] == "Johann"
pianist[1] == "Sebastian"
pianist[2] == "Bach"
我试过
string test = pianist.Split(' ');
但它不起作用。
答案 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(' ');