Mã này sẽ giúp bạn. Nó sẽ kiểm tra độ dài của chuỗi hiện tại. Nếu nó lớn hơn maxLength (150) trong trường hợp này, nó sẽ bắt đầu ở ký tự thứ 150 và (đi ngược lại) tìm ký tự không phải từ đầu tiên (như được mô tả bởi OP, đây là chuỗi ký tự không dấu cách)). Sau đó, nó sẽ lưu chuỗi lên đến ký tự đó và bắt đầu lại với chuỗi còn lại, lặp lại cho đến khi chúng ta kết thúc bằng chuỗi con nhỏ hơn ký tự maxLength. Cuối cùng, nối tất cả chúng lại với nhau trong một chuỗi cuối cùng.
string line = "This is a really long run-on sentence that should go for longer than 150 characters and will need to be split into two lines, but only at a word boundary.";
int maxLength = 150;
string delimiter = "\r\n";
List<string> lines = new List<string>();
// As long as we still have more than 'maxLength' characters, keep splitting
while (line.Length > maxLength)
{
// Starting at this character and going backwards, if the character
// is not part of a word or number, insert a newline here.
for (int charIndex = (maxLength); charIndex > 0; charIndex--)
{
if (char.IsWhiteSpace(line[charIndex]))
{
// Split the line after this character
// and continue on with the remainder
lines.Add(line.Substring(0, charIndex+1));
line = line.Substring(charIndex+1);
break;
}
}
}
lines.Add(line);
// Join the list back together with delimiter ("\r\n") between each line
string final = string.Join(delimiter , lines);
// Check the results
Console.WriteLine(final);
Lưu ý: Nếu bạn chạy mã này trong một ứng dụng giao diện điều khiển, bạn có thể muốn thay đổi "maxLength" tới số nhỏ hơn sao cho giao diện điều khiển không quấn vào bạn.
Lưu ý: Mã này không có hiệu lực đối với bất kỳ ký tự tab nào. Nếu các tab cũng được bao gồm, tình huống của bạn sẽ phức tạp hơn một chút.
Cập nhật: Tôi đã khắc phục lỗi khi dòng mới bắt đầu bằng dấu cách.
Nguồn
2012-06-08 12:31:45
biểu Tại sao thường xuyên? Nếu bạn hiển thị thẻ C#, hãy thực hiện nó qua các hàm C#. –
Vì vậy, bạn muốn chèn dấu ngắt dòng cho mỗi dòng mỗi 150 ký tự? Ví dụ đầu vào và đầu ra (với một giới hạn ngắn hơn) có thể giúp hình dung những gì bạn muốn làm. – Qtax
Rất tiếc. Quy tắc phá vỡ từ là đau: làm thế nào để bạn xác định một từ (phức tạp hơn nhiều so với bạn có thể nghĩ)? – Crisfole