web-dev-qa-db-ger.com

Sie müssen einen String nach einem "Word" in einem String in c # erhalten

ich habe eine Zeichenfolge in c #, für die ich ein bestimmtes Wort "Code" in der Zeichenfolge finden und die verbleibende Zeichenfolge nach dem Wort "Code" erhalten muss.

Die Zeichenfolge ist 

"Fehlerbeschreibung, code : -1"

also muss ich das Wort code in der obigen Zeichenkette finden und ich muss den Fehlercode bekommen ... Ich habe regex gesehen, aber jetzt klar verstanden. Gibt es einen einfachen Weg?

36
Narayan
string toBeSearched = "code : ";
string code = myString.Substring(myString.IndexOf(toBeSearched) + toBeSearched.Length);

Etwas wie das?

Vielleicht sollten Sie mit dem Fall von fehlendem code :... umgehen.

string toBeSearched = "code : ";
int ix = myString.IndexOf(toBeSearched);

if (ix != -1) 
{
    string code = myString.Substring(ix + toBeSearched.Length);
    // do something here
}
78
xanatos
var code = myString.Split(new [] {"code"}, StringSplitOptions.None)[1];
// code = " : -1"

Sie können die Zeichenfolge so anpassen, dass sie geteilt wird. Wenn Sie "code : " verwenden, enthält das zweite Element des zurückgegebenen Arrays ([1]) in Ihrem Beispiel "-1".

15
Oded

Einfacher (wenn Ihr einziges Schlüsselwort "Code" ist) kann Folgendes sein:

string ErrorCode = yourString.Split(new string[]{"code"}, StringSplitOptions.None).Last();
9
Nogard

verwenden Sie die Funktion indexOf() 

string s = "Error description, code : -1";
int index = s.indexOf("code");
if(index != -1)
{
  //DO YOUR LOGIC
  string errorCode = s.Substring(index+4);
}
2
asifsid88

fügen Sie diesen Code Ihrem Projekt hinzu 

  public static class Extension {
        public static string TextAfter(this string value ,string search) {
            return  value.Substring(value.IndexOf(search) + search.Length);
        }
  }

dann benutze 

"code : string text ".TextAfter(":")
1
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
}
0
user3488501
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;
    }
0
Caner LENGER