Nav*_*r V 1 .net c# string split
我需要读取一个非空格分隔值(0-9)的字符串.为什么我不能在String.Split方法中使用Empty literal ?
// 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());
}
Run Code Online (Sandbox Code Playgroud)
为什么不,
string[] inputVal = Console.ReadLine().Split('');
Run Code Online (Sandbox Code Playgroud)
要么
string[] inputVal = Console.ReadLine().Split(string.Empty));
Run Code Online (Sandbox Code Playgroud)
作品?
或者,在这种情况下使用string.ToString是好的做法吗?
要么
每次迭代的string.ToString方法会增加运行时间吗?
输入:
"12345" // type is string
Run Code Online (Sandbox Code Playgroud)
预期产出:
"1","2","3","4","5" // type is string[]
Run Code Online (Sandbox Code Playgroud)
关于什么:
Console.ReadLine().ToArray()
Run Code Online (Sandbox Code Playgroud)
您似乎不需要拆分字符串,只需要单个字符.
或@Tim Schmelter正确地指出了String.ToCharArray.