2017-05-05 4 views
-7

Ich habe Stringeinen Teil Wählen Sie in einem String C#

string AccountName= "123456789 - Savings - 20$" 

Jetzt möchte ich nur die Account Einsparungen wählen. Das bedeutet den Teil zwischen -s.

Diese Daten sind dynamische Daten. Könnten Sie mir bitte eine Idee geben, den Teil der Zeichenfolge zwischen zwei -s zu bekommen. Beispiel AccountName = "Einsparungen".

Vielen Dank im Voraus .. !!

+4

Bitte mehr klar sein. Was ist die erwartete Ausgabe? – Steve

+0

Ich habe es aktualisiert .. Bitte sehen Sie sich meine Abfrage erneut an. danke – 123456

+0

du könntest regex benutzen. '" [Ss] \ S + [Ss] "' –

Antwort

0

Zeichenfolge Unter der Annahme, werden Haben Sie immer nur zwei -s, können Sie Folgendes verwenden, um den Teilstring zwischen ihnen zu erhalten. Wenn dies nicht der Fall ist, ändern Sie bitte die Frage, um das Problem besser zu beschreiben.

string myString = AccountName.Split('-')[1]; 

Check out https://msdn.microsoft.com/en-us/library/system.string.split(v=vs.110).aspx für weitere Informationen über die Split-Methode in der String-Klasse.

+0

Vielen Dank. Es hat für mich geklappt. – 123456

0

Wie wäre:

string AccountName = "123456789 - Savings - 20$"; 

String[] tokens = AccountName.Split(new[] { " - " }, StringSplitOptions.RemoveEmptyEntries); 
AccountName = tokens.ElementAtOrDefault(1); // Savings 

Wenn es möglich ist, dass es keine Leerzeichen:

String[] tokens = AccountName.Split(new[] { '-' }, StringSplitOptions.RemoveEmptyEntries); 
AccountName = tokens.ElementAtOrDefault(1)?.Trim(); 
1

Eine der Möglichkeiten, können Sie das:

  • Split-String durch '-'
  • Holen Sie die Position 1 von Array
  • Trim Werteräume entfernen

    var AccountNameSplited = AccountName.split ('-') [1] .Trim();

Sie sollten in diesen Fällen defensiv:

var AccountNameBt = AccountName.Split('-'); 
var AccountNameBtPos1 = string.Empty; 
if (AccountNameBt != null && AccountNameBt.Count() > 0) 
AccountNameBtPos1 =AccountNameBt[1].Trim(); 
Verwandte Themen