2013-03-22 9 views

答えて

97

あなたはstring.Substringを使用し、それを開始インデックスを与え、それが最後まで指定されたインデックスから始まる部分文字列を取得することができます

[最初の質問をし]。

myString.Substring(str.Length-3) 

このインスタンスから部分文字列を取得します。部分文字列は、指定された文字位置の で始まります。 MSDN

編集、更新後の

のためにあなたがstring.Substring(Int32, Int32)を使用して、それを与えることができ、文字列から最後の3つの文字を削除するには、文字列から[更新質問]

を最後の3つの文字を削除します開始インデックス0と終了インデックス3文字列の長さ未満。最後の3文字の前に部分文字列を取得します。

myString = myString.Substring(0, str.Length-3); 

String.Substring Method (Int32, Int32)

このインスタンスから部分文字列を取得します。部分文字列は、指定された文字位置の から始まり、指定された長さを持ちます。あなたはまた、長として開始インデックスを渡すことによって、最後の3つの文字を削除するためにString.Remove(Int32)メソッドを使用してすることができます

から3、それは文字列の末尾に、このポイントから削除されます。 String.Remove Method (Int32)

myString = myString.Remove(myString.Length-3) 

は現在 インスタンス内のすべての文字を、指定された位置から始まると 最後の位置まで続くが、削除された新しい文字列を返します

+1

これは答えではありません – braks

+5

ありがとう@braks、最初に質問された質問は「文字列から最後の3文字を読みました」でした。これは後で編集され、わかりませんでした。あなたのご意見は、質問の編集後に間違っていた私の回答を修正するのに役立ちました。 – Adil

13
myString = myString.Remove(myString.Length - 3, 3); 
4
myString.Remove(myString.Length-3); 
+0

'myString = myString.Remove(myString.Length - 3)'です。 –

2

str= str.Remove(str.Length - 3);

1

String.Removeを使用すると、文字列の最後まで指定した位置から削除できます。ここで

myString = myString.Remove(myString.Length - 3); 
1
string myString = "abcdxxx"; 
    if (myString.Length<3) 
     return; 
    string newString=myString.Remove(myString.Length - 3, 3); 
3
string test = "abcdxxx"; 
test = test.Remove(test.Length - 3); 
//output : abcd 
7

私はこれらすべてを読みますが、もう少しエレガントな何かを望んでいました。ただ、文字列の末尾から特定の文字数を削除するには:

string.Concat("hello".Reverse().Skip(3).Reverse()); 

出力:

"he" 
+1

これは文字列の長さを必要としないので非常に「創造的」ですが、逆の操作はおそらくもっと高価です。 – Casper

+1

文字列を反転させることは、文字を数えることよりもはるかに高価です。まったく新しい文字列を作成し、元の文字列をコピーして元の文字列をガベージコレクションする必要があります。 –

+0

@MattGregory文字列は不変です:Remove、Substring、任意の文字列関数は新しい文字列を生成します。元のポインタを上書きすると常にガベージコレクションが発生します。 'Enumerable.Reverse'はその文字列を' char [] 'にバッファリングし、次に新しい' char [] 'にバッファリングしてから、新しい' string'を生成します(内部的に ' char [] ')。より良いアプローチは 'new string(" hello ".Reverse()。Skip(3))'です。または、Substringを使う独自の文字列拡張関数 'AllBut(this string in、int i)'を書くだけです。 – Wolfzoon

0

をするために使用

TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10) 

.Text.Remove(10) //文字列から最後の文字を削除しますインデックス10から始まるテキストを削除して終了する

関連する問題