2013-02-10 14 views
11

Chcę znaleźć ostatnią pozycję znaku w łańcuchu, a następnie wstawić IF, stwierdzając, że jeśli ostatnia pozycja znaku jest równa A B lub C, to należy wykonać określoną akcję. Jak mogę uzyskać ostatnią pozycję postaci?Jak uzyskać ostatnią pozycję znaku w łańcuchu za pomocą C#?

Edytowane: Przykład: stringMain = "Cześć, to jest Robert!" subString = "this" Teraz chcę znaleźć pozycję s (s w tym) w stringMain.

+2

Pozycja ostatniego znaku ... to nie jest po prostu "długość-1"? – spender

+1

Przeczytaj dokumentację klasy 'String' na stronie http://msdn.microsoft.com/en-us/library/system.string.aspx –

+0

Jeśli przychodzisz do C# z VB, możesz znaleźć" C# i VB.NET Konwersja "pomocna. http://www.amazon.com/gp/product/0596003196/ref=oh_details_o02_s00_i00 – John

Odpowiedz

8

Zakładam, że w rzeczywistości nie chcą ostatniego znaku pozycję (co byłoby yourString.Length - 1), ale ostatni znak sama. może się okazać, że przez indeksowanie ciąg z ostatniej pozycji znaku:

yourString[yourString.Length - 1] 
5

string jest zero based tablica char.

char last_char = mystring[mystring.Length - 1]; 

odniesieniu do drugiej części pytania, jeżeli znak jest A, B, C

Stosując if statement

char last_char = mystring[mystring.Length - 1]; 
if (last_char == 'A' || last_char == 'B' || last_char == 'C') 
{ 
    //perform action here 
} 

Stosując switch statement

switch (last_char) 
{ 
case 'A': 
case 'B': 
case 'C': 
    // perform action here 
    break 
} 
+0

Że 'if' będzie wyglądać lepiej jako' switch', imo. – oscilatingcretin

+0

Napisałem tylko jako przełącznik, ale w pytaniu "if" jest potrzebne! –

7

Lubię LINQ:

YourString.Last()

Musisz zaimportować Przestrzeń nazw System.Linq, jeśli jeszcze jej nie masz. Nie zaimportowałbym przestrzeni nazw tylko do użycia .Last().

+0

może nie najszybszy, ale zdecydowanie interesujący. – John

Powiązane problemy