управление строкой - PullRequest
       13

управление строкой

2 голосов
/ 07 октября 2009

хорошо, так что плохо здесь. и чтобы быть ясным, я ищу примеры кода, где это возможно.

Итак, у меня есть нормальная строка, скажем,

string mystring = "this is my string i want to use";

Хорошо, теперь, когда у меня есть строка, я разделил ее на пробел с помощью

string[] splitArray = mystring.Split(new char[] { ' ' });

Хорошо, теперь у меня есть splitArray [0] через splitArray [7]. Теперь мне нужно сделать некоторые необычные вещи со строкой, которые обычно не нужны. Вот некоторые из них:

Мне нужно отрезать первое слово, так что я остаюсь с другими 7 словами, чтобы у меня было что-то вроде:

string myfirstword = "this";
mystring = "is my string i want to use";

Теперь мне нужно будет использовать mystring снова и снова, используя разные его части в разное время, и в зависимости от строки я не буду знать, как долго это будет. поэтому я приведу несколько примеров того, что мне нужно.

во-первых, мне нужно знать, сколько там слов (это легко, просто добавив) во-вторых, мне нужен какой-то способ, например,

string secondword = splitArray[1];
string everythingAfterTheSecondWord = splitArray[2+];

если вы заметили, я включил [2+] ... +, указывающий, что я хочу, чтобы все строки в массиве были собраны вместе, пробелы во всех, в строку. так, например,

string examplestring = "this is my example for my stack overflow question";
string[] splitArray2 = examplestring.Split(new char[] { ' ' });

Теперь, если бы я вызвал splitArray2 [4+], я бы хотел получить возврат "для моего вопроса переполнения стека". теперь, очевидно, это не так просто, как добавление + к строковому массиву ... но это то, что мне нужно, и в текущей ситуации я пробовал много других простых способов, которые просто не работают.

ТАКЖЕ, если бы я вызвал что-то вроде splitArray2 [2-5], я бы хотел, слова со 2 по 5, очевидно.

Резюме: мне нужно больше управлять моими массивами string [], и мне нужно уметь находить каждое слово за словом *, иметь возможность вырезать случайные слова в строке, оставляя остальную часть строки нетронутой, и мне нужно быть в состоянии найти строку m до n

Спасибо!

Ответы [ 2 ]

4 голосов
/ 07 октября 2009

Большая часть того, что вы ищете, может быть достигнута с помощью List<string>. Кратко:

string mystring = "this is my string i want to use";

List<string> splitArray = new List<string>(mystring.Split(new char[] { ' ' }));
string firstWord = splitArray[0];

// mystring2 = "is my string i want to use"
splitArray.RemoveAt(0);
string mystring2 = String.Join(" ", splitArray.ToArray());

Для выполнения более сложных вещей, которые вы описываете с помощью splitArray[2+], требуется LINQ, и, следовательно, .NET 3.5.

List<string> everythingAfterTheSecondWord = splitArray.Skip(2).ToList();

Для splitArray[2-5]:

List<string> arraySlice = splitArray.Skip(2).Take(3).ToList();
0 голосов
/ 07 октября 2009

Ну, чтобы сделать «каждое слово, начинающееся со слова X», вы можете сделать это:

string newString = string.join(splitArray," ",x);

Чтобы получить y слов, начинающихся с x, сделайте следующее:

string newString = string.join(splitArray," ",x,y);

Чтобы получить количество слов:

int wordCount= splitArray.Length;

Соединив все это, слова x-y выглядят так:

string newString = string.join(splitArray," ",x, splitArray.Length-x+1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...