Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: xử lý chuỗi ????

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    1

    Mặc định xử lý chuỗi ????

    ví dụ :
    static void Main()
    {
    string MASV = "SV06130419";
    }
    Làm sao để lấy được 1 chuỗi s1="SV06",s2="13",s3="19" từ chuỗi MAVS ở trên. Mình mới C# à. Thx a lot

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    MASV.substring(đầu, số phần tử lấy) .
    MASV là một đối tượng (c# cái gì cũng đối tượng hết ), thêm dấu chấm vào đằng sau nó xổ ra một loạt phương thức, cứ thế mà chọn.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    1

    MASV.substring(đầu, số phần tử lấy) .
    MASV là một đối tượng (c# cái gì cũng đối tượng hết ), thêm dấu chấm vào đằng sau nó xổ ra một loạt phương thức, cứ thế mà chọn.
    Vẫn không làm được điều mình muốn ở ví dụ phía trên và bạn nên coi lại hàm bạn viết nó là trừ đi chứ không phài là muốn lấy. Nếu mình muốn lấy những ký tự ở giữa thì làm thế nào. Nếu có thể làm ơn viết code cho mình dễ hiểu hơn bạn ơi. Cám ơn bạn đã chỉ

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Code:
    public class Test
    {
        public static void Main()
        {
            string s = "abcde",a;
            a=s.Substring(2, 2);
            a = s.Substring(3);
        }
    }
    tham khảo msdn nhé , ở đó toàn tiếng anh phổ thông cho học sinh lớp 3, đừng có hỏi mình nhé .
    Đã được chỉnh sửa lần cuối bởi tienlbhoc : 18-03-2008 lúc 08:11 PM.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  5. #5
    Ngày gia nhập
    03 2007
    Bài viết
    179

    Code:
    Console.Write("\nnhap chuoi can xet: ");
                string ch = Console.ReadLine();
                char [] A = new int[ch.Length];
                int n = ch.Length;
                for (int i = 0; i < n; i++)
                {
                    A[i] = (ch[i].ToString());//khỏi qua mạng A cũng được lấy từ ch luôn
                }
    tách ra từng kí tự luôn
    //tác giả : ai đó trên forum chỉ mình giờ quên tên

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    294

    Mặc định xử lý chuỗi ????

    @Hà : Đoạn code ấy dài quá ah ^^!
    Visual C# Code:
    1. char [] A = new int[ch.Length];
    2.             int n = ch.Length;
    3.             for (int i = 0; i < n; i++)
    4.             {
    5.                 A[i] = (ch[i].ToString());//khỏi qua mạng A cũng được lấy từ ch luôn
    6.             }
    Thay bằng đúng 1 dòng ^^!
    Visual C# Code:
    1. char [] A = ch.ToCharArray();

    Nhân đây cũng muốn nhắc bạn Metallic : không phải cái gì có "sub" cũng là trừ nhé ^^!
    Đã được chỉnh sửa lần cuối bởi darkan : 19-03-2008 lúc 06:49 AM.
    Is the moon rising...

  7. #7
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Sử dụng Regex để gom nhóm

    Đôi khi lập trình chúng ta cần gom nhóm một số các biểu thức tương tự với nhau theo một quy định nào đó. Ví dụ như chúng ta cần tìm kiếm địa chỉ IP và nhóm chúng lại vào trong nhóm IPAddresses được tìm thấy bất cứ đâu trong một chuỗi.
    Lớp Group cho phép chúng ta tạo những nhóm và tìm kiếm dựa trên biểu thức quy tắc, và thể hiện kết quả từ một nhóm biểu thức đơn.
    Một biểu thức nhóm định rõ một nhóm và cung cấp một biểu thức quy tắc, bất cứ chuỗi con nào được so khớp bởi biểu thức quy tắc thì sẽ được thêm vào trong nhóm. Ví dụ, để tạo một nhóm chúng ta có thể viết như sau:
    @”(?<ip>(\d|\ .)+)\s”
    Lớp Match dẫn xuất từ nhóm Group, và có một tập hợp gọi là Groups chứa tất cả các nhóm mà Match tìm thấy.
    Việc tạo và sử dụng tập hợp Groups và lớp Group được minh họa trong ví dụ 10.8 như sau:
    Ví dụ minh hoạ Sử dụng lớp Group.

    Visual C# Code:
    1. namespace Programming_CSharp
    2.  
    3. {
    4.  
    5. using System;
    6.  
    7. using System.Text.RegularExpressions;
    8.  
    9. class Tester
    10.  
    11. {
    12.  
    13.  
    14. {
    15.  
    16. string string1 =10:20:30 127.0.0.0 Dolphin.net;
    17.  
    18. // nhóm thời gian bằng một hay nhiều con số hay dấu :
    19.  
    20. // và theo sau bởi khoảng trắng.
    21.  
    22. Regex theReg = new Regex(@”(?<time>(\d|\:)+)\s” +
    23.  
    24. // địa chỉ IP là một hay nhiều con số hay dấu chấm theo
    25.  
    26. // sau bởi khoảng trắng
    27.  
    28. @”(?<ip>(\d|\.)+)\s” +
    29.  
    30. // địa chỉ web là một hay nhiều ký tự
    31.  
    32. @”(?<site>\S+));
    33.  
    34. // lấy một tập hợp các chuỗi được so khớp
    35.  
    36. MatchCollection theMatches = theReg.Matches( string1 );
    37.  
    38. // sử dụng vòng lặp để lấy các chuỗi trong tập hợp foreach (Match theMatch in theMatches)
    39. {
    40.  
    41. if (theMatch.Length != 0)
    42.  
    43. {
    44.  
    45.  
    46. Console.WriteLine(“\ntheMatch: {0}”, theMatch.ToString());
    47.  
    48. // hiển thị thời gian
    49.  
    50. Console.WriteLine(“Time: {0}”, theMatch.Groups[“time”]);
    51.  
    52. // hiển thị địa chỉ IP
    53.  
    54. Console.WriteLine(“IP: {0}”, theMatch.Groups[“ip”]);
    55.  
    56. // hiển thị địa chỉ web site
    57.  
    58. Console.WriteLine(“Site: {0}”, theMatch.Groups[“site”]);
    59.  
    60. }// end if
    61.  
    62. }// end foreach
    63. }// end Main
    64.  
    65. }// end class
    66.  
    67. }// end namespace

    Ví dụ trên bắt đầu bằng việc tạo một chuỗi đơn giản để tìm kiếm như sau:
    string string1 = “10:20:30 127.0.0.0 Dolphin.net”;
    Chuỗi này có thể được tìm thấy trong nội dung của các tập tin log ghi nhận các thông tin ở web server hay từ các kết quả tìm kiếm được trong cơ sở dữ liệu. Trong ví dụ đơn giản này có
    ba cột, một cột đầu tiên ghi nhận thời gian, cột thứ hai ghi nhận địa chỉ IP, và cột thứ ba ghi nhận địa chỉ web. Mỗi cột được ngăn cách bởi khoảng trắng. Dĩ nhiên là trong các ứng dụng thực tế ta phải giải quyết những vấn đề phức tạp hơn nữa, chúng ta có thể cần phải thực hiện việc tìm kiếm phức tạp hơn và sử dụng nhiều ký tự ngăn cách hơn nữa.
    Trong ví dụ này, chúng ta mong muốn là tạo ra một đối tượng Regex để tìm kiếm chuỗi con yêu cầu và phân chúng vào trong ba nhóm: time, địa chỉ IP, và địa chỉ web. Biểu thức quy tắc
    ở đây cũng khá đơn giản, do đó cũng dễ hiểu.
    Ở đây chúng ta quan tâm đến những ký tự tạo nhóm như:

    <?<time>
    Dấu ngoặc đơn dùng để tạo nhóm. Mọi thứ giữa dấu ngoặc mở trước dấu ? và dấu ngoặc đóng (trong trường hợp này sau dấu +) được xác định là một nhóm. Chuỗi ?<time> định ra tên của nhóm và liên quan đến tất cả các chuỗi ký tự được so khớp theo biểu thức quy tắc (\d|
    \+)\s. Biểu thức này có thể được diễn giải như: “một hay nhiều con số hay những dấu :
    theo sau bởi một khoảng trắng”.
    Tương tự như vậy, chuỗi ?<ip> định tên của nhóm ip, và ?<site> là tên của nhóm site.
    Tiếp theo là một tập hợp được định nghĩa để nhận tất cả các chuỗi con được so khớp như sau:
    MatchCollection theMatches = theReg.Matches( string1 );
    Vòng lặp foreach được dùng để lấy ra các chuỗi con được tìm thấy trong tập hợp.
    Nếu chiều dài Length của Match là lớn hơn 0, tức là tìm thấy thì chúng ta sẽ xuất ra chuỗi được tìm thấy:
    Console.WriteLine(“\ntheMatch: {0}”, theMatch.ToString());
    Và kết quả của ví dụ là:

    theMatch: 10:20:30 127.0.0.0 Dolphin.net
    Sau đó chương trình lấy nhóm time từ tập hợp nhóm của Match và xuất ra màn hình bằng các lệnh như sau:
    Console.WriteLine(“time: {0}”, theMatch.Groups[“time”]);
    Kết quả là :

    Time: 10:20:30
    Tương tự như vậy với nhóm ip và site:

    Console.WriteLine(“IP: {0}”, theMatch.Groups[“ip”]);

    // hiển thị địa chỉ web site

    Console.WriteLine(“site: {0}”, theMatch.Groups[“site”]);
    Ta nhận được kết quả:

    IP: 127.0.0.0

    Site: Dolphin.net
    Trong ví dụ trên thì tập hợp Match chỉ so khớp duy nhất một lần. Tuy nhiên, nó có thể so khớp nhiều hơn nữa trong một chuỗi. Để làm được điều này, chúng ta có thể bổ sung chuỗi tìm kiếm được lấy từ trong một log file như sau:
    String string1 = “10:20:30 127.0.0.0 Dolphin.net ” +

    “10:20:31 127.0.0.0 Mun.net ” +

    “10:20:32 127.0.0.0 Msn.net ”;
    Chuỗi này sẽ tạo ra ba chuỗi con so khớp được tìm thấy trong MatchCollection. Và kết quả ta
    có thể thấy được là:

    theMatch: 10:20:30 127.0.0.0 Dolphin.net

    Time: 10:20:30

    IP: 127.0.0.0

    site: Dolphin.net


    theMatch: 10:20:31 127.0.0.0 Mun.net

    Time: 10:20:31

    IP: 127.0.0.0

    Site: Mun.net


    theMatch: 10:20:32 127.0.0.0 Msn.net time: 10:20:32
    IP: 127.0.0.0

    Site: Msn.net

    Trong ví dụ này phần bổ sung, thì theMatches chứa ba đối tượng Match. Mỗi lần lặp thì các chuỗi con được tìm thấy (ba lần) và chúng ta có thể xuất ra chuỗi cũng như từng nhóm riêng bên trong của chuỗi con được tìm thấy.
    ttecak ?

Các đề tài tương tự

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  3. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  4. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn