Нужно получить строку после "слова" в строке в С#
У меня есть строка в С#, для которой я должен найти конкретное слово "код" в строке и должен получить оставшуюся строку после слова "код".
Строка
"Описание ошибки, код: -1"
поэтому я должен найти слово code в приведенной выше строке, и мне нужно получить код ошибки.
Я видел регулярное выражение, но теперь ясно понял. Есть ли простой способ?
Ответы
Ответ 1
string toBeSearched = "code : ";
string code = myString.Substring(myString.IndexOf(toBeSearched) + toBeSearched.Length);
Что-то вроде этого?
Возможно, вам нужно обработать случай отсутствия code :
...
string toBeSearched = "code : ";
int ix = myString.IndexOf(toBeSearched);
if (ix != -1)
{
string code = myString.Substring(ix + toBeSearched.Length);
// do something here
}
Ответ 2
var code = myString.Split(new [] {"code"}, StringSplitOptions.None)[1];
// code = " : -1"
Вы можете настроить строку для разделения на: если вы используете "code : "
, второй член возвращаемого массива ([1]
) будет содержать "-1"
, используя ваш пример.
Ответ 3
Упрощенный способ (если ваше единственное ключевое слово - это "код" ) может быть:
string ErrorCode = yourString.Split(new string[]{"code"}, StringSplitOptions.None).Last();
Ответ 4
использовать indexOf()
функцию
string s = "Error description, code : -1";
int index = s.indexOf("code");
if(index != -1)
{
//DO YOUR LOGIC
string errorCode = s.Substring(index+4);
}
Ответ 5
добавить этот код в свой проект
public static class Extension {
public static string TextAfter(this string value ,string search) {
return value.Substring(value.IndexOf(search) + search.Length);
}
}
затем используйте
"code : string text ".TextAfter(":")
Ответ 6
string originalSting = "This is my string";
string texttobesearched = "my";
string dataAfterTextTobeSearch= finalCommand.Split(new string[] { texttobesearched }, StringSplitOptions.None).Last();
if(dataAfterTextobeSearch!=originalSting)
{
//your action here if data is found
}
else
{
//action if the data being searched was not found
}
Ответ 7
string founded = FindStringTakeX("UID: 994zxfa6q", "UID:", 9);
string FindStringTakeX(string strValue,string findKey,int take,bool ignoreWhiteSpace = true)
{
int index = strValue.IndexOf(findKey) + findKey.Length;
if (index >= 0)
{
if (ignoreWhiteSpace)
{
while (strValue[index].ToString() == " ")
{
index++;
}
}
if(strValue.Length >= index + take)
{
string result = strValue.Substring(index, take);
return result;
}
}
return string.Empty;
}