2010-10-11 89 views
15

Làm cách nào để xóa khoảng trắng giữa các ký tự trong C#?Cách cắt khoảng trắng giữa các ký tự

Trim() có thể được sử dụng để xóa các khoảng trống ở đầu chuỗi cũng như ở cuối. Ví dụ: " C Sharp ".Trim() kết quả "C Sharp".

Nhưng cách tạo chuỗi thành CSharp? Chúng tôi có thể xóa không gian bằng cách sử dụng for hoặc vòng lặp for each cùng với biến tạm thời. Nhưng có phương pháp tích hợp nào trong C#(.Net framework 3.5) để thực hiện điều này như Trim() không?

+0

[Không phải là một xây dựng trong phương pháp,] (http: // dotnetperls.com/remove-whitespace) nhưng khá đơn giản –

Trả lời

33

Bạn có thể sử dụng phương pháp String.Replace

string str = "C Sharp"; 
str = str.Replace(" ", ""); 

hoặc nếu bạn muốn loại bỏ tất cả các ký tự khoảng trắng (space, tab, ngắt dòng ...)

string str = "C Sharp"; 
str = Regex.Replace(str, @"\s", ""); 
+0

oh .... vâng. tôi có phương thức 'replace'. Cảm ơn bạn –

+2

Điều đó chỉ thay thế không gian, không phải khoảng trắng (cả hai không giống nhau) –

+0

@Paul, bạn nói đúng, cảm ơn. Tôi đã cập nhật câu trả lời của mình. –

0
string myString = "C Sharp".Replace(" ", ""); 
+1

Ký tự trống chữ '' tạo ra lỗi trình biên dịch. –

+1

thay thế '''' vào '" "' –

2

Sử dụng String.Replace để thay thế tất cả không gian màu trắng không có gì.

ví dụ

string newString = myString.Replace(" ", ""); 
+2

Điều đó chỉ thay thế (ascii) không gian, không phải tất cả khoảng trắng? Xem thảo luận tại đây http://msdn.microsoft.com/en-us/library/t97s7bs3.aspx –

+0

-1: Bạn không thể có ký tự trống. – Richard

+0

@Paul Thảo luận ở đâu? Liên kết đó là về String.Trim – w69rdy

0

tôi thấy phương pháp này rất tốt cho làm những việc như xây dựng một lớp học mà sử dụng một tài sản được tính toán để có cho phép nói một "productName" và tước các khoảng trắng ra để tạo ra một URL mà sẽ tương đương với một hình ảnh sử dụng tên sản phẩm không có dấu cách. Ví dụ:

namespace XXX.Models 
    { 
     public class Product 
     { 
      public int ProductID { get; set; } 
      public string ProductName { get; set; } 
      public string ProductDescription { get; set; } 

      public string ProductImage 
      { 
       get { return ProductName.Replace(" ", string.Empty) + ".jpg"; } 
      } 
     } 
    } 

Vì vậy, trong câu trả lời này tôi đã sử dụng một phương pháp rất giống như w69rdy, nhưng sử dụng nó trong một ví dụ, cộng với tôi đã sử dụng string.Empty thay cho "". Và mặc dù sau. Net 2.0 không có sự khác biệt, tôi thấy nó dễ đọc và dễ hiểu hơn cho những người khác có thể cần đọc mã của tôi. Tôi cũng thích điều này bởi vì đôi khi tôi bị mất trong tất cả các dấu ngoặc kép tôi có thể có trong một khối mã.

1

Nếu bạn muốn giữ một khoảng trống giữa mỗi từ. này nên làm điều đó ..

public static string TrimSpacesBetweenString(string s) 
    { 
     var mystring =s.RemoveTandNs().Split(new string[] {" "}, StringSplitOptions.None); 
     string result = string.Empty; 
     foreach (var mstr in mystring) 
     { 
      var ss = mstr.Trim(); 
      if (!string.IsNullOrEmpty(ss)) 
      { 
       result = result + ss+" "; 
      } 
     } 
     return result.Trim(); 

    } 

nó sẽ loại bỏ các chuỗi ở giữa chuỗi vì vậy nếu đầu vào là

var s ="c   sharp"; 
result will be "c sharp"; 
+2

'string.Join (" ", s.Split (new char [0], StringSplitOptions.RemoveEmptyEntries) .ToList(). Select (w => w. Trim())); ' –

1
//Remove spaces from a string just using substring method and a for loop 
static void Main(string[] args) 
{ 
    string businessName; 
    string newBusinessName = ""; 
    int i; 

    Write("Enter a business name >>> "); 
    businessName = ReadLine(); 

    for(i = 0; i < businessName.Length; i++) 
    { 
     if (businessName.Substring(i, 1) != " ") 
     { 
      newBusinessName += businessName.Substring(i, 1); 
     } 
    } 

    WriteLine("A cool web site name could be www.{0}.com", newBusinessName); 
} 
+0

Đối với các chuỗi dài hơn, tốt hơn nên sử dụng' StringBuilder' thay vì '+ =', vì nó không tạo lại đối tượng String với mỗi kết nối. –

Các vấn đề liên quan