[英]How can I use Empty literal on Split('')
I need to read a string with non-space separated values (0-9). 我需要读取一个非空格分隔的值(0-9)的字符串。 Why can't I use Empty literal in String.Split method?
为什么我不能在String.Split方法中使用Empty文字?
// Reading Grid's row and col size
gridInputValues = Console.ReadLine().Split(' ');
gridRow = int.Parse(gridInputValues[0]);
gridCol = int.Parse(gridInputValues[1]);
gridMatrix2D = new int[gridRow, gridCol];
// Reading Grid's row * col matrix values
for( int r = 0; r < gridRow; r++ )
{
//string[] inputVal = Console.ReadLine().Split('');
//string[] inputVal = Console.ReadLine().Split(string.Empty));
string inputVal = Console.ReadLine();
for( int c = 0; c < gridCol; c++ )
{
//gridMatrix2D[r, c] = int.Parse(inputVal[c]);
gridMatrix2D[r, c] = int.Parse(inputVal[c].ToString());
}
Why not, 为什么不,
string[] inputVal = Console.ReadLine().Split('');
or 要么
string[] inputVal = Console.ReadLine().Split(string.Empty));
works? 作品?
Alternatively, Is using string.ToString good practice in such case? 或者,在这种情况下,使用string.ToString是一种好的做法吗?
or 要么
Will the string.ToString method on each iteration increase the running time? 每次迭代中的string.ToString方法会增加运行时间吗?
Input: 输入:
"12345" // type is string
Expected Output: 预期产量:
"1","2","3","4","5" // type is string[]
What about: 关于什么:
Console.ReadLine().ToArray()
You don´t seem to need split the string, you just want the individual characters. 您似乎不需要分割字符串,只需要单个字符即可。
or String.ToCharArray as @Tim Schmelter correctly pointed out. 或@Tim Schmelter正确指出的String.ToCharArray。
You can probably try this 你可能可以试试这个
string[] inputVal = Console.ReadLine().Split(null);
or 要么
string[] inputVal = Console.ReadLine().Split(new char[0], StringSplitOptions.RemoveEmptyEntries)
您可以改用chars:
int[] intArray = inputVal.Select(ch => ch-'0').ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.