2017-03-22 33 views
7

Ne ben olmak istiyorum şudur C# içindeki bir dizenin ilk ve son karakteri nasıl kaldırılır?

String: "hello to the very tall person I am about to meet" 
:

String: hello to the very tall person I am about to meet 

Ben sadece başlangıç ​​kesmek için kod bulabilirim?

+1

“İlk ve son karakteri” kaldırmak istiyor musunuz veya çevreleyen tırnakları kaldırmak mı istiyorsunuz? Bunlar farklı sorular. Örneğinizde –

+0

, tırnakları kaldırıyorsunuz. Buradaki gerçek amaç bu mu? –

cevap

13

ardından alt dize kullanmak Anish tarafından ileri sürüldüğü gibi, eğer sadece baştan sona ve sondaki alıntıları kaldırmak istediğinizde, sadece kullanın

myStr = myStr.Trim('"'); 
+1

Sadece hızlı bir uyarı (insanlar bu soruyu hala görüntülüyor gibi görünüyorlar): eğer bir dize birden fazla tırnak işareti ile başlar veya biterse, bunlar da çıkarılmayabilir, bu da istenmeyebilir (soru başlığı = ilk ve son karakter). ÖRNEĞİN. "merhaba dünya" "=" merhaba dünya, "merhaba dünya" yerine –

12

String.Substring yöntemini kullanın. dize değişken mystr saklanır eğer

Yani, gibi yapın:

mystr = mystr.Substring(1, mystr.Length - 2); 
+0

Bu, baştan değil, baştan alır! – Beefo

+0

Benim hatam - C# 'un uzunluğunu temel aldım ... Java için çok kullanıyorum! Mystr.Length - 1 yerine, ikinci argüman mystr.Length - 2. Cevapımı güncelledim. –

2

Eğer örnekteki tırnak gibi bir dizesinden belirli karakterleri kaldırmak için çalışıyorsanız, siz Trim kullanabilirsiniz Başlangıç ​​ve bitiş öğelerinden farklı karakterleri kırpmak isterseniz, hem başlangıç ​​hem de son kırpma için veya TrimStart ve TrimEnd. Bu yöntemleri, dizenin başına ve sonuna kaldırılmasını istediğiniz bir karakter (veya karakter dizisi) geçirin.

var quotedString = "\"hello\""; 
var unQuotedString = quotedString.TrimStart('"').TrimEnd('"'); 

// If the characters are the same, then you only need one call to Trim('"'): 
unQuotedString = quotedString.Trim('"'); 

Console.WriteLine(quotedString); 
Console.WriteLine(unQuotedString); 

Çıktı:

"Merhaba"

merhaba Alternatif

, sen başından ve sonundan karakterleri kaldırmak için Join birlikte Skip ve Take kullanabilirsiniz dize. Bu dize uzunluğunu hesaplamak hakkında herhangi bir endişe tasarruf için ve boş bir dize bile çalışır: Eğer dize herhangi ilk ve son karakteri kaldırmak istiyorsanız

var original = "\"hello\""; 
var firstAndLastRemoved = string.Join("", original.Skip(1).Take(original.Length - 2)); 
İlgili konular