Tôi muốn xóa ba ký tự cuối cùng khỏi chuỗi:
string myString = "abcdxxx";
Lưu ý rằng chuỗi là dữ liệu động.
Tôi muốn xóa ba ký tự cuối cùng khỏi chuỗi:
string myString = "abcdxxx";
Lưu ý rằng chuỗi là dữ liệu động.
Câu trả lời:
đọc 3 ký tự cuối cùng từ chuỗi [Câu hỏi ban đầu]
Bạn có thể sử dụng chuỗi.Sub chuỗi và cung cấp cho nó chỉ mục bắt đầu và nó sẽ nhận được chuỗi con bắt đầu từ chỉ mục đã cho đến khi kết thúc.
myString.Substring(myString.Length-3)
Lấy một chuỗi con từ trường hợp này. Chuỗi con bắt đầu tại một vị trí ký tự được chỉ định. MSDN
Chỉnh sửa , cho bài đăng cập nhật
Xóa 3 ký tự cuối cùng khỏi chuỗi [Câu hỏi cập nhật]
Để xóa ba ký tự cuối cùng khỏi chuỗi, bạn có thể sử dụng chuỗi.Sub chuỗi (Int32, Int32) và cung cấp cho nó chỉ mục bắt đầu 0
và chỉ mục kết thúc ba ít hơn độ dài chuỗi . Nó sẽ nhận được chuỗi con trước ba ký tự cuối cùng.
myString = myString.Substring(0, myString.Length-3);
Phương thức String.Sub chuỗi (Int32, Int32)
Lấy một chuỗi con từ trường hợp này. Chuỗi con bắt đầu tại một vị trí ký tự được chỉ định và có độ dài được chỉ định.
Bạn cũng có thể sử dụng phương thức String.Remove (Int32) để loại bỏ ba ký tự cuối cùng bằng cách chuyển chỉ mục bắt đầu là độ dài - 3 , nó sẽ xóa từ điểm này đến hết chuỗi.
myString = myString.Remove(myString.Length-3)
Phương thức String.Remove (Int32)
Trả về một chuỗi mới trong đó tất cả các ký tự trong trường hợp hiện tại, bắt đầu tại một vị trí đã chỉ định và tiếp tục qua vị trí cuối cùng, đã bị xóa
Tôi đọc qua tất cả những điều này, nhưng muốn một cái gì đó thanh lịch hơn một chút. Chỉ cần xóa một số ký tự nhất định khỏi cuối chuỗi:
string.Concat("hello".Reverse().Skip(3).Reverse());
đầu ra:
"he"
Enumerable.Reverse
đệm chuỗi thành một char[]
, sau đó đệm vào một chuỗi mới char[]
ngắn hơn 3, và sau đó tạo ra một chuỗi mới string
(với bên trong khác char[]
). Một cách tiếp cận tốt hơn sẽ là new string("hello".Reverse().Skip(3))
, hoặc chỉ viết hàm mở rộng chuỗi của riêng bạn AllBut(this string in, int i)
sử dụng Chuỗi con.
Length
được lưu trữ.
.SkipLast(n)
. Không cần phải đảo ngược bất cứ điều gì. "hello".SkipLast(3)
cho"he"
myString.Remove(myString.Length-3);
myString = myString.Remove(myString.Length - 3)
đó là.
string test = "abcdxxx";
test = test.Remove(test.Length - 3);
//output : abcd
Bạn có thể sử dụng String.Remove
để xóa từ một vị trí được chỉ định đến cuối chuỗi.
myString = myString.Remove(myString.Length - 3);
Có thể không chính xác những gì bạn đang tìm kiếm vì bạn nói đó là "dữ liệu động" nhưng được cung cấp chuỗi ví dụ của bạn, điều này cũng hoạt động:
? "abcdxxx".TrimEnd('x');
"abc"
str= str.Remove(str.Length - 3);
myString.Substring(myString.Length - 3, 3)
Dưới đây là ví dụ về chuỗi con. >>
http://www.dotnetperls.com/sub chuỗi
Giới thiệu những người.
Xóa các ký tự cuối cùng khỏi chuỗi
TXTB_DateofReiumbursement.Text = (gvFinance.SelectedRow.FindControl("lblDate_of_Reimbursement") as Label).Text.Remove(10)
.Text.Remove(10)
// được sử dụng để xóa văn bản bắt đầu từ chỉ mục 10 đến hết
Dễ dàng. text = text.remove(text.length - 3)
. Tôi đã trừ 3 vì Remove
hàm này sẽ loại bỏ tất cả các mục từ chỉ mục đó đến cuối chuỗi text.length
. Vì vậy, nếu tôi trừ 3 thì tôi nhận được chuỗi có 3 ký tự bị xóa khỏi nó.
Bạn có thể khái quát hóa điều này để loại bỏ các a
ký tự từ cuối chuỗi, như thế này:
text = text.remove(text.length - a)
Vì vậy, những gì tôi đã làm là logic tương tự. Các remove
chức năng loại bỏ tất cả các mục từ bên trong của nó đến cuối của chuỗi đó là độ dài của văn bản. Vì vậy, nếu tôi trừ đi a
độ dài của chuỗi sẽ cung cấp cho tôi chuỗi có a
ký tự bị xóa.
Vì vậy, nó không chỉ hoạt động cho 3, nó hoạt động cho tất cả các số nguyên dương, ngoại trừ nếu độ dài của chuỗi nhỏ hơn hoặc bằng a
, trong trường hợp đó, nó sẽ trả về số âm hoặc 0.