• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Chèn ký tự vào chuổi trong C#

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 522
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 184 time
Been thanked: 30 time
Liên hệ:

Chèn ký tự vào chuổi trong C#

Gửi bàigửi bởi muaphonui_2010 » CN 21/04/2019 6:38 pm

Chào các bạn.
Mình muốn chằn ký tự "\n" vào chuổi với điều kiện như sau:
Giả sử mình có chuổi = "Câu lạc bộ VN.Net là nơi tôi yêu mến nhất trong tất cả các diễn đàn, nó gắn bó với tôi rất nhiều"
==> Mình muốn cứ 27 ký tự thì thay vào ký tự "\n", nhưng nếu ký tự thứ 27 đó không phải dấu cách thì thay vào ký tự "\n" cho dấu cách kế trước .

Với ví dụ trên thì nó sẽ chằn như sau:
==> Câu lạc bộ VN.Net là nơi\ntôi yêu mến nhất trong tất\ncả các diễn đàn, nó gắn bó\nvới tôi rất nhiều
Cách tính như hình dưới.
Hình ảnh

==> Mục đích của mình là nguốn ngắt chuổi để xuống dòng chứ nó dài quá.
Nhờ các bạn giúp mình với nhé.
Xin cảm ơn.



muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 522
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 184 time
Been thanked: 30 time
Liên hệ:

Re: Chèn ký tự vào chuổi trong C#

Gửi bàigửi bởi muaphonui_2010 » T.Hai 22/04/2019 8:27 am

Hi.
Mình mò được rồi nha.
Xin cảm ơn.

Mã: Chọn hết

 private string chenkytu(string chuoi)
        {
            int kytu27 = 27;
            for (int i = 1; i < chuoi.Length; i++)
            {
                if (i == kytu27)
                {
                    if (chuoi[i] == ' ')
                    {
                        chuoi = chuoi.Insert(i, "\n");
                    }
                    else
                    {
                        int solui = 0;
                        for (int n = i; n > 1; n--)
                        {
                            solui += 1;
                            if (chuoi[n] == ' ')
                            {
                                chuoi = chuoi.Insert(n, "\n");
                                i = n;
                                kytu27 += (26 -solui);
                                break;
                            }
                        }
                    }
                }
             
            }
            return chuoi;
        }

Hình đại diện của người dùng
thuanfun
Thành viên tích cực
Thành viên tích cực
Bài viết: 139
Ngày tham gia: T.Năm 06/11/2008 7:46 pm
Been thanked: 10 time

Re: Chèn ký tự vào chuổi trong C#

Gửi bàigửi bởi thuanfun » CN 28/04/2019 10:36 pm

Đây là đoạn code VB.NET cho speed nhanh:

  1. Private Function _autoXuongDong(ByVal s As String, Optional ByVal maxLen As Integer = 27) As String
  2.         Dim pos As Integer = 0, p As Integer, insertPos As New List(Of Integer)
  3.         Do Until 1 = 0
  4.             p = _getNextPos(s, pos, maxLen)
  5.             If p < 0 Then Exit Do
  6.             insertPos.Add(p) : pos = p
  7.         Loop
  8.         For i = insertPos.Count - 1 To 0 Step -1
  9.             s = s.Insert(insertPos(i), "\n")
  10.         Next
  11.         Return s
  12.     End Function
  13.     Private Function _getNextPos(ByVal s As String, ByVal pos As Integer, Optional ByVal maxLen As Integer = 27) As Integer
  14.         Dim p = pos + maxLen
  15.         If p >= s.Length Then Return -1
  16.         If s(p) = " " Then Return p
  17.         For i = p To pos Step -1
  18.             If s(i) = " " Then Return i
  19.         Next
  20.         Return p
  21.     End Function
  22.  
Nhận code VB.NET theo yêu cầu


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.3 khách