简体   繁体   English

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

[英]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方法会增加运行时间吗?

EDIT 1: 编辑1:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM