วิธีลบ white space ทั้งหมดออกจากจุดเริ่มต้นหรือจุดสิ้นสุดของสตริง


208

ฉันจะลบ white space ทั้งหมดจากจุดเริ่มต้นและจุดสิ้นสุดของสตริงได้อย่างไร

ชอบมาก

"hello"ผล"hello"
"hello "ตอบแทน"hello"
" hello "ผล"hello"
" hello world "ตอบแทน"hello world"

คำตอบ:


445

String.Trim()ส่งคืนสตริงซึ่งเท่ากับสตริงอินพุตที่มีwhite-spaceทั้งหมดซึ่งถูกตัดแต่งตั้งแต่เริ่มต้นและสิ้นสุด:

"   A String   ".Trim() -> "A String"

String.TrimStart() ส่งคืนสตริงที่มี white-space trimmed ตั้งแต่เริ่มต้น:

"   A String   ".TrimStart() -> "A String   "

String.TrimEnd() ส่งกลับสตริงที่มีช่องว่างสีขาวถูกตัดออกจากท้าย:

"   A String   ".TrimEnd() -> "   A String"

ไม่มีวิธีใดที่แก้ไขวัตถุสตริงต้นฉบับ

(ในการปรับใช้บางอย่างเป็นอย่างน้อยถ้าไม่มีช่องว่างสีขาวที่จะตัดคุณจะได้รับวัตถุสตริงเดียวกันกับที่คุณเริ่มต้นด้วย:

csharp> string a = "a"; csharp> string trimmed = a.Trim(); csharp> (object) a == (object) trimmed; returns true

ฉันไม่ทราบว่าภาษานี้รับประกันได้หรือไม่)


1
⁺¹สำหรับคำจำกัดความ MS ของช่องว่าง ฉันได้พบกับพฤติกรรมแปลก ๆ ที่.TrimEnd()ใช้งานไม่ได้(สำหรับอักขระที่ไม่ใช่ช่องว่าง)แต่ท้ายที่สุดก็คือตัวละครที่ไม่ได้อยู่ในเอกสาร
Hi-Angel

2
มีหลายวิธีในการตัดแต่งสตริงและมีเพียงไม่กี่อย่างที่ทำเครื่องหมายไว้บนโต๊ะ ยังฉันชอบ. Trim () ว่าเป็นการเขียนที่เร็วที่สุดและอ่านง่ายที่สุด

อาจเป็นประโยชน์อย่างยิ่งที่จะทราบสิ่งนี้: หากคุณมีหลายบรรทัดเช่นเดียวกับใน TextArea และคุณกดปุ่ม Enter คุณจะได้รับสิ่งที่ชอบ: " A String \r\n " .Trim()จำได้ว่านี่เป็นช่องว่างเช่นกัน
Nash Carp

@NashCarp: นั่นเป็นเพราะ \ r และ \ n ยังเป็นตัวละครในช่องว่างด้วย
7259

20

ลองดูที่Trim()ส่งคืนสตริงใหม่โดยลบช่องว่างออกจากจุดเริ่มต้นและจุดสิ้นสุดของสตริงที่ถูกเรียกใช้





8

String.Trim()ลบช่องว่างทั้งหมดออกจากจุดเริ่มต้นและจุดสิ้นสุดของสตริง หากต้องการลบช่องว่างภายในสตริงหรือทำให้ช่องว่างเป็นปกติให้ใช้นิพจน์ปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.