Andy07 Ответов: 3

Как разделить данные по пробелам?


У меня есть данные в тексте:

W S 6
W H 11
W D 6
W C 8
W N 9

N S 7
N H 2
N D 6
N C 5

N N 4
E S 6
E H 11
E D 6
E C 8
E N 9


и я хочу разбить их на строковый массив, например:
string[0] array=
W S 6
W H 11
W D 6
W C 8
W N 9

string[1] array=
N S 7
N H 2
N D 6
N C 5

string[2] array=
N N 4
E S 6
E H 11
E D 6
E C 8
E N 9


Что я уже пробовал:

Я был готов:
using(StreamReader reader = new StreamReader(uploadedFile.InputStream))
                {
                   
                    string read = reader.ReadToEnd();
                    string[] Array = Regex.Split(read,"\n");
                }


Но это не может быть сделано, мольбы помогают мне.

3 Ответов

Рейтинг:
1

F-ES Sitecore

Используйте строку.Расщеплять

Строка.Метод Split (String [], StringSplitOptions) (System)[^]

string[] x = text.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);


Если у вас есть несколько строк, вам может понадобиться разбить их на новую строку, а затем пройти через каждую строку и разбить на пробел. Или просто считывайте данные строка за строкой и разделяйте их на пространстве, а не считывайте их одним куском.


Рейтинг:
0

TheRealSteveJudge

Предполагается, что ваш текст использует \n в качестве разрыва строки.

var text = "W S 6\nW H 11\nW D 6\nW C 8\nW N 9\n\nN S 7\nN H 2\nN D 6\nN C 5\n\nN N 4\nE S 6\nE H 11\nE D 6\nE C 8\nE N 9\n";

Тогда вы могли бы разделить этот текст следующим образом:
var array = Regex.Split(text, "\n\n");


Рейтинг:
0

Andy Lanng

Разделение с помощью регулярного выражения. Split-это своего рода перебор, когда вы хотите разделить его на 1 символ. Попробуй var array = read.Split('\n');.

Остерегайтесь '\r', так как он может иногда сопровождать \n в зависимости от источника строки. Может быть, стоит обрезать струны после того, как они разорвутся. Linq будет проще:

using(StreamReader reader = new StreamReader(uploadedFile.InputStream))
    {
        string read = reader.ReadToEnd();
        string[] Array = read.Split(read,"\n").Select(s=>s.Trim({' ','\r'}).ToArray();
    }