2016-03-27 14 views
-2

Kesilmeye ihtiyacı olabilecek veya olmayabilecek bir dizilim var. Programımda iki negatif olmayan tamsayı argüman olarak geçiyorum. Birincisi, programın dizgenin başlangıcından kaç tane karakterin çıkarılması gerektiğini, ikincisinin ise sondan kaç karakter çıkarılacağını anlatması gerekiyor. Bunu yapmak için bir yol var mı, sıfırlar giriş olarak düzgün çalışır, kodun anlamı açıktır ve if (removefirst != 0) gibi aptalca koşullu ifadeler yoktur. Kural dışı ifadesinin, ilk argümanın ikinci olandan kesinlikle daha az olması gerektiğinden koşullu ifadeye ihtiyacı vardır, istisna mesajını belirtir. Daha güzelce yapmanın bir yolu var mı?Nasıl Yaparım String.Remove?

+0

Bunun tam kodunu yazabilir misiniz? Ve bazı örnek giriş ve beklenen çıktı? – Steve

+0

"İlk argümanın ikinci olandan kesinlikle daha az olması gerekiyor, istisna mesajı var" - Tam istisna mesajı nedir? Her neyse ya yanlış ya da yanlış yorum yapıyorsun. Daha fazla bilgi olmadan, benim tahminim ikinci sırada. "abc" .Remove (2, 1) 'sadece iyi çalışır ve' 'ab '' döndürür. '2' kesinlikle 1'den az değildir. – hvd

+0

@ hvd Bunu yanlış yorumluyordum. Soru, sanırım işe yaramaz olarak güvenli bir şekilde silinebilir. Fark ettiğin için teşekkürler; Bayrak açacağım ve belki bir moderatör artık silinmiş bir cevabın olduğunu silecek. –

cevap

7

Matematik + kullanım Substring()?

var result = str.Substring(firstNumber, str.Length - (firstNumber + secondNumber)); 

DotNetFiddle Example

string yourstring = "asdf"; 
string result; 
int firstNumber = 0; 
int secondNumber = 0; 

Console.WriteLine(yourstring); 

result = yourstring.Substring(firstNumber, yourstring.Length - (firstNumber+secondNumber)); 

Console.WriteLine(result); 

firstNumber = 1; 
secondNumber = 1; 
result = yourstring.Substring(firstNumber, yourstring.Length - (firstNumber+secondNumber)); 

Console.WriteLine(result); 

Sonuçlar

sd

asdf asdf

+2

her iki sayı da uzunluğu etkiler ... –

+0

Doğru sensin! Teşekkürler :) –

İlgili konular