如何在Split('')上使用空文字?

本文关键字:文字 Split | 更新日期: 2023-09-27 18:14:44

我需要读取一个非空格分隔值(0-9)的字符串。为什么我不能在String中使用空文字?分裂方法?

// 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());
    }

为什么不呢,

string[] inputVal = Console.ReadLine().Split('');

string[] inputVal = Console.ReadLine().Split(string.Empty));

工作吗?

或者,正在使用字符串。ToString在这种情况下的好做法?

字符串。每次迭代时ToString方法会增加运行时间?

编辑1:

输入:

 "12345" // type is string
预期输出:

 "1","2","3","4","5" // type is string[]

如何在Split('')上使用空文字?

怎么样:

Console.ReadLine().ToArray()

你似乎不需要拆分字符串,你只需要单个字符。

或字符串。@Tim Schmelter正确指出ToCharArray

你可以试试这个

string[] inputVal = Console.ReadLine().Split(null);

string[] inputVal = Console.ReadLine().Split(new char[0], StringSplitOptions.RemoveEmptyEntries)

您可以使用字符:

int[] intArray = inputVal.Select(ch => ch-'0').ToArray();