2016-04-09 13 views
-1

,Bir dizenin içindeki son harfi nasıl bulur ve dizinini alırım? ı testi denilen bir dize var diyelim

string test = "hello my dear world" 

ve ben (19 olduğunu) son mektubun endeksi almak istiyorum.

Bunu nasıl endeksi almak ve bir int/dizeye ekleyebilirim?

+5

'int index = test.Length;' –

+2

'için geri gerekenler "sevgili dünyaya merhaba !!!"' veya '" merhaba sevgili world 123 "'? – dasblinkenlight

+1

@ S.Akbari: İndeks sıfır temelli olduğundan '- 1 'de buraya koymalısınız. –

cevap

2

Bu exteremely basittir.

string test = "Hello World"; 
char theLastCharacterOfTest = test[test.Length - 1]; // 'd' 
int theIndexOfTheLastCharacter = test.Length - 1; // 10 

Açıklama ister misiniz? İşte burada! Geçen karakterin dizinini alma ile

başlayalım. C# 0 tabanlı dizin sistemini kullandığından (yani ilk endeks 0'dır), son endeks dizesinin uzunluğu - 1.

son karakteri geçen dizinde sadece karakter sağa, nedir? Ve dize indisi, dizine geçirilen dizindeki karakteri döndürür. Eğer bu ikisini birleştirirsek, test[test.Length - 1]'u alırız.

yüzden burada bir bağlantı, sen Dizinleyicilere çok aşina olmayan düşünüyorum:

https://msdn.microsoft.com/en-us/library/6x16t2tx.aspx

+0

edilen en son hattı da "-1" –

2

Sana endeksi veya son karakterin pozisyon aradığınız emin değilim (eğer endeks 19, ama bu ... endeks 18'dir pozisyon olduğunu söyledi). İşte hem açıklanmıştır:

string test = "hello my dear world"; 

// The length of the text gives the position of the last char 
int position = test.Length; 

// C# has a 0-based index. You need the string length -1 to get the last char's position 
int index = test.Length - 1; 

İşte a working example bu.

+0

@HenkHolterman, Ne demek istiyorsun? 0 temelli bir indeksin C# veya genel olarak programlamada evrensel olmadığını mı söylüyorsunuz? –

+0

Hayır, öyle değil. C# bile değil. –

+0

Bana C# 0 tabanlı bir dizin kullanmayan bir örnek verebilir misin? –

0
int index = test.Length; 
char LastLetter = test[index - 1]; 

soru göndermeden önce arama yapın.

+0

testini [index - 1] içermelidir :-) Ben neden bahsettiğini anlamak istiyorum. Nedir bu örnekte dize dize yoluyla olduğu –

+0

testi anlamına [index] Dizide belirli karakterlere erişebiliriz. C# dizininde 0'dan başladığından, [index-1] 'i kullanmalıyız. –

0
string test = "hello my dear world"; 

int index = test.FindIndex(x => x.StartsWith("d")); 

VEYA

int index = test.Length - 1; 
+0

Neden -1'i koydunuz? –

+0

Alt dizesi kural başlangıç ​​karakteri 0'ı bul ve son karakter harekete geçirmeyi -1 olarak bul. –

İlgili konular