Как получить подстроку из строки в С#?

У меня есть большая строка и она хранится в строковой переменной str. И я хочу получить подстроку из этого в С#? Предположим, что строка: " Retrieves a substring from this instance. The substring starts at a specified character position."

Результат подстроки, который я хочу отобразить: The substring starts at a specified character position.

Ответы

Ответ 1

Вы можете сделать это вручную или с помощью метода IndexOf.

Вручную:

int index = 43;
string piece = myString.Substring(index);

С помощью IndexOf вы можете увидеть, где находится полный стоп:

int index = myString.IndexOf(".") + 1;
string piece = myString.Substring(index);

Ответ 2

string newString = str.Substring(0,10)

предоставит вам первые 10 символов (от позиции 0 до позиции 9).

Смотрите здесь.

Ответ 3

Вот пример получения подстроки от 14 символов до конца строки. Вы можете изменить его в соответствии с вашими потребностями.

string text = "Retrieves a substring from this instance. The substring starts at a specified character position.";
//get substring where 14 is start index
string substring = text.Substring(14);

Ответ 4

Рия,

Сделав предположение, что вы хотите разбить на полную остановку (.), тогда здесь будет использоваться подход, который будет захватывать все вхождения:

// add @ to the string to allow split over multiple lines 
// (display purposes to save scroll bar appearing on SO question :))
string strBig = @"Retrieves a substring from this instance. 
            The substring starts at a specified character position. great";

// split the string on the fullstop, if it has a length>0
// then, trim that string to remove any undesired spaces
IEnumerable<string> subwords = strBig.Split('.')
    .Where(x => x.Length > 0).Select(x => x.Trim());

// iterate around the new 'collection' to sanity check it
foreach (var subword in subwords)
{
    Console.WriteLine(subword);
}

наслаждаться...

Ответ 5

string text = "Retrieves a substring from this instance. The substring starts at a specified character position. Some other text";

string result = text.Substring(text.IndexOf('.') + 1,text.LastIndexOf('.')-text.IndexOf('.'))

Это сократит часть строки, которая лежит между специальными символами.

Ответ 6

var data =" Retrieves a substring from this instance. The substring starts at a specified character position.";

var result = data.Split(new[] {'.'}, 1)[0];

Вывод:

Получает подстроку из этого экземпляра. Подстрока начинается с указанная позиция символа.

Ответ 7

легко переписать этот код на С#...

Этот метод работает, если ваше значение находится между двумя подстроками!

, например:

stringContent = "[myName]Alex[myName][color]red[color][etc]etc[etc]"

вызовы должны быть:

myNameValue = SplitStringByASubstring(stringContent , "[myName]")

colorValue = SplitStringByASubstring(stringContent , "[color]")

etcValue = SplitStringByASubstring(stringContent , "[etc]")