2012-12-19 46 views
5

Tôi đang làm việc trên một công cụ chuyển đổi đơn giản giúp chuyển đổi một văn bản sang ngôn ngữ khác,Làm thế nào để bỏ qua ` r n 'trong chuỗi

giả sử tôi có hai textbox và trong hộp 1 bạn nhập từ Index và nhấn nút chuyển đổi.
tôi sẽ thay thế văn bản của bạn với فہرست này một sự thay thế của Index trong ngôn ngữ tiếng Urdu nhưng tôi có một vấn đề nếu bạn nhập từ index và đưa ra một số không gian hoặc đưa ra một số lợi nhuận sau đó tôi nhận được văn bản của textbox trong C# như Index \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n này ngay bây giờ như thế nào có thể tôi thoát khỏi điều này tôi muốn nhận được đơn giản Index luôn.
Cảm ơn cho câu trả lời và xin vui lòng bình luận nếu bạn có bất kỳ câu hỏi

Trả lời

9

Hãy thử sử dụng các phương pháp Trim nếu dòng mới chỉ ở phần cuối của đầu:

input = input.Trim(); 

Bạn có thể sử dụng Replace, nếu bạn muốn xóa các dòng mới ở bất kỳ đâu trong chuỗi:

// Replace line break with spaces 
input = input.Replace("\r\n", " "); 
// (Optionally) Combine consecutive spaces to one space (probalby not most efficient but should work) 
while (input.Contains(" ")) { input = input.Replace(" ", " "); } 

Nếu bạn muốn ngăn chặn dòng mới hoàn toàn, hầu hết TextBox Điều khiển có thuộc tính giống như MultiLine hoặc tương tự, khi được đặt, ngăn không cho nhập nhiều hơn một dòng.

+0

cắt không hoạt động nếu bạn có từ như 'Chỉ mục chỉ mục ' – Smartboy

+0

@Smartboy Ok, sau đó Thay thế sẽ tốt hơn cho việc này. Đã cập nhật câu trả lời. – Botz3000

+0

Nhưng nếu bạn có 'index \ r \ nindex', đầu ra sẽ là' indexindex' và tôi không chắc chắn rằng bản dịch sẽ hoạt động tốt. – Steve

5

này là đủ để loại bỏ khoảng trắng theo quy định của Char.IsWhiteSpace (khoảng trống, dòng mới vv)

string wordToTranslate = textBox1.Text.Trim(); 

tuy nhiên, nếu textbox của bạn có chứa nhiều từ thì bạn nên sử dụng một cách tiếp cận khác nhau

string[] words = textBox1.Text.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries); 
foreach(string wordToTranslate in words) 
    ExecTranslation(wordToTranslate); 

sử dụng Split với char [] null làm dấu phân tách cho phép xác định mọi khoảng trắng là dấu tách từ hợp lệ

5

input.Replace(Environment.NewLine, string.Empty).Replace(" ", string.Empty);

Người dùng Replace để xóa ký tự khỏi 'bên trong' của chuỗi. Trim chỉ xóa các ký tự ở đầu và cuối chuỗi.

4

Thêm tất cả ký tự bạn muốn bỏ qua cho chuỗi:

var cleanChars = text.Where(c => !"\n\r".Contains(c)); 
string cleanText = new string(cleanChars.ToArray()); 

đó làm việc vì chuỗi thực hiện IEnumerable<char>.

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