Функция разделения с # по пробелу разделяет строковый символ мудрым

Я новичок в WPF.

В моем приложении я хочу разбить строку по пробелу.

код:

string str="Hi I am a string";
string[] strList=str.Split(' ');
MessageBox.show("Length: "+ strList.Length); //output: Length: 16

Я тоже пробовал

string str="Hi I am a string";
char[] splitchar = { ' ' };
string[] strList=str.Split(splitchar);
MessageBox.show("Length: "+ strList.Length); //output: Length: 16

Я тоже пробовал

string str="Hi I am a string";
string[] strList=str.Split();
MessageBox.show("Length: "+ strList.Length); //output: Length: 16

Но во всех случаях это длина печати: 16. Она должна напечатать 5.

Если я распечатаю значения strList, тогда он будет печатать h i i a m a s t r i n g

Пожалуйста, направь меня.

Какой набор символов вы используете в своем проекте?

Mayur 10.09.2018 08:09

работает: dotnetfiddle.net/CJtVF4

Ehsan Sajjad 10.09.2018 08:09

Судя по всему, между буквами стоит пробел.

Ofir Winegarten 10.09.2018 08:11

Помимо того, что метод называется .Split(), а не .split(), ваш код должен работать так, как задумано.

Marco 10.09.2018 08:23

Я скопировал и вставил ваш код, и он работает, как ожидалось. В вашем реальном коде вы случайно не напечатали str.Length? Это объясняет, почему вы получаете 16 ...

Thomas Flinkow 10.09.2018 08:52

Попробуйте удалить пространство, которое вы разделяете, и снова вставить его, если у вас есть что-то, что в вашей среде IDE или редакторе выглядит как пространство, но на самом деле является чем-то другим, тогда Split может вести себя странно.

Lasse V. Karlsen 10.09.2018 08:55
2
6
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

just do like this

вы используете .split(), но это .Split()

public static void Main()
    {
        string str="Hi I am a string";
        string[] strList=str.Split(' ');
        Console.WriteLine("Length"+" "+strList.Length);
    }

output is 5

ОП, почему вы приняли этот ответ? Это то же самое, что и ваш первый пример кода (за исключением исправленной опечатки).

Llama 10.09.2018 08:24
.split() не существует. Если бы OP использовал .split(), вы бы получили сбой во время компиляции, а не рабочую программу с неожиданным выводом. Пример
Llama 10.09.2018 08:30

Джон, почему ты сходишь с ума? Посмотри внимательно на его .Split (), а не .split ()

ArunPratap 10.09.2018 08:32
.split(' ') со строчной буквой S кажется явной опечаткой в ​​вопросе, а это означает, что ваш ответ, являющийся решением, не имеет никакого смысла. Я не «схожу с ума». Я говорю о смысле.
Llama 10.09.2018 08:33

@ArunPratap - Джон делает это, потому что ответ не имеет смысла. Пиксель, это не может быть тот ответ, который вы ищете.

Enigmativity 10.09.2018 08:36

Ну не знаю. Либо у них есть собственный метод расширения строки под названием split, который объясняет, почему ваше решение работает, либо они ошибочно приняли ваш ответ. В его нынешнем виде непонятно. Хотя, если бы у них был метод расширения под названием split, я надеюсь, они это осознали.

Llama 10.09.2018 08:38

@ArunPratap - Я не думаю, что вы можете удалить его сейчас, когда он был принят.

Enigmativity 10.09.2018 08:56

хорошо, @Enigmativity, спасибо, но я думаю, что мы также можем отметить вопросы?

ArunPratap 10.09.2018 08:59

Другие вопросы по теме