Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 6 123 ... CuốiCuối
Kết quả 1 đến 10 của 52
  1. #1

    Làm quen với 2 lớp String và StringBuilder qua ví dụ

    Beginner to Beginner ! [IMG]images/smilies/dont_tell_anyone.gif[/IMG]

    String class



    Mã:
    /*  * To change this template, choose Tools |  Templates  * and open the template in the  editor.  */ package  helloworldproject;   import  java.io.UnsupportedEncodingException;   /**  *  * @author XANA  */ public  class  HelloWorldProject  extends  NewClass {       public  static  void  main(String[]  args)  throws  UnsupportedEncodingException     {         //  Tạo mảng byte từ string         byte  bytes[]  =  "Le  Thanh Vu".getBytes();         //  Tạo string từ mảng byte         String  bytesString  =  new  String(bytes);         System.out.println(bytesString);    //  Le Thanh Vu         //  Tạo string với charset         System.out.println(new  String(bytes,  "UTF-16"));  //  ??????         //  Lấy mã kí tự         System.out.println("Le  Thanh Vu".codePointAt(0));  //  76         //  So sánh 2 chuỗi         System.out.println("Le  Thanh Vu".compareTo("Le  Thanh Vu"));  //  0         //  So sánh 2 chuỗi không phân biệt hoa, thường         System.out.println("Le  Thanh Vu".compareToIgnoreCase("le  thanh vu"));  //  0         //  Nối 2 chuỗi         System.out.println("Le  Thanh ".concat("Vu"));  //  Le Thanh Vu         //  Kiểm tra nội dung chuỗi         System.out.println("Le  Thanh Vu".contains("Thanh"));  //  true         //  Tạo mảng char từ string         char  myChar[]  =  "Le  Thanh Vu".toCharArray();         //  return chuỗi từ 1 mảng char         System.out.println(String.copyValueOf(myChar,  3,  myChar.length  -  3));  //  Thanh Vu         //  Kiểm tra nội dung cuối chuỗi         System.out.println("Le  Thanh Vu".endsWith("Vu"));  //  true         //  So sánh 2 chuỗi không phân biệt hoa, thường         System.out.println("Le  Thanh Vu".equalsIgnoreCase("le  thanh vu"));  //  true         //  Định dạng string với các giá trị runtime         System.out.println(String.format("L%c  Thanh %s",  'e',  "Vu"));  //  Le Thanh Vu         //  Lấy mã hash của string         System.out.println("Le  Thanh Vu".hashCode());  //  1553683839         //  Lấy vị trí của kí tự trong string         System.out.println("Le  Thanh Vu".indexOf('T'));  //  3         //  có rỗng ?         System.out.println("".isEmpty());  //  true         //  Lấy vị trí cuối cùng của kí tự trong string         System.out.println("VuVuVuVu".lastIndexOf('V'));  //  6         //  replace string         System.out.println("Le  Thanh Vu".replace("Thanh",  "Xuan"));  //  Le Xuan Vu         //  Chia string theo dấu hiệu         String  arrayOfString[]  =  "D:\\Nhac  Uo242\\Various Artist - Pachelbel's Greatest Hit- The Ultimate Canon (2003)  [FLAC]".split("[:\\\\]");         for  (String  string  :  arrayOfString)         {             System.out.println(string);         } //D // //Nhac  Uo242 //Various  Artist - Pachelbel's Greatest Hit- The Ultimate Canon (2003) [FLAC]                   //  Kiểm tra nội dung đầu string         System.out.println("Le  Thanh Vu".startsWith("Le"));  //  true         //  Chia string theo vị trí         System.out.println("Le  Thanh Vu".substring(3,  8));  //  Thanh         //  Chuyển toàn string về chữ thường         System.out.println("Le  Thanh Vu".toLowerCase());  //  le thanh vu         //  Chuyển toàn string về chữ hoa         System.out.println("Le  Thanh Vu".toUpperCase());  //  LE THANH VU         //  Bỏ khoảng trống đầu và cuối string         System.out.println("     Le Thanh Vu             ".trim());  //  Le Thanh Vu           //  Thủ thuật khi chia string theo dấu hiệu         //  Dấu -         System.out.println(java.util.Arrays.toString("Le-Thanh-Vu".split("-"))); //  [Le, Thanh, Vu]         //  Dấu .         //  Không nên "."         System.out.println(java.util.Arrays.toString("Le.Thanh.Vu".split("\\."))); //  [Le, Thanh, Vu]                 //  Dấu |         //  Không nên "|"         System.out.println(java.util.Arrays.toString("Le|Thanh|Vu".split("\\|"))); //  [Le, Thanh, Vu]                //  Dấu |         //  để giữ các string rỗng giữa các kí tự |         System.out.println(java.util.Arrays.toString("Le|Thanh|Vu|||".split("\\|",  -1))); //  [Le, Thanh, Vu, , , ]           System.out.println(java.util.Arrays.toString("Le  Thanh Vu".split("  "))); //  [Le, , Thanh, Vu]         //  Bỏ kị tự rỗng         System.out.println(java.util.Arrays.toString("Le  Thanh Vu".split("\\s+"))); //  [Le, Thanh, Vu]                 System.out.println(java.util.Arrays.toString("{RealHowto}{java-0438.html}{usage  of String.split()}".split("[{}]"))); //  [, RealHowto, , java-0438.html, , usage of String.split()]         System.out.println(java.util.Arrays.toString("0123456789012345678".split("(?<=\\G.{3})"))); //  [012, 345, 678, 901, 234, 567, 8]         System.out.println(java.util.Arrays.toString("RealHowto!java-0438.html!usage  of String.split()!".split("(?<=[!])"))); //  [RealHowto!, java-0438.html!, usage of String.split()!]               } }



    StringBuilder class



    Mã:
    /*  * To change this template, choose Tools |  Templates  * and open the template in the  editor.  */ package  helloworldproject;   /**  *  * @author XANA  */ public  class  HelloWorldProject  extends  NewClass {       public  static  void  main(String[]  args)     {         //  Khả năng thu nhận mặc định là 16         System.out.println(new  StringBuilder().capacity());  //  16         //  Khởi tạo 1 StringBuilder từ 1 String         StringBuilder  strBuilder  =  new  StringBuilder("Le  Thanh Vu");         //  Khả năng thu nhận hiện tại         System.out.println(strBuilder.capacity());  //  27 = 11 + 16         //  Độ dài chuỗi hiện tại         System.out.println(strBuilder.length());    //  11         //  set string lenght, bé hơn length hiện tại thì string bị  cắt,         //  lớn hơn thì thêm null         strBuilder.setLength(20);         //  set khả năng thu nhận ít nhất         strBuilder.ensureCapacity(30);         //  Thu nhận thêm         strBuilder.append(555555);         System.out.println(strBuilder);  //  Le Thanh Vu          555555         //  Xóa từ, đến vị trí         strBuilder.delete(2,  strBuilder.length());         System.out.println(strBuilder);  //  Le         //  Xóa kí tự ở vị trí         strBuilder.deleteCharAt(0);         System.out.println(strBuilder);  //  e         //  Chèn vào vị trí         strBuilder.insert(0,  "L");         strBuilder.insert(strBuilder.length(),  "  Thanh Vu");         System.out.println(strBuilder  +  "  ; "  +  strBuilder.length());   //  Le Thanh Vu ; 11         //  Thay thế từ , đến vị trí          strBuilder.replace(3,  8,  "Xuan");         System.out.println(strBuilder  +  "  ; "  +  strBuilder.length());   //  Le Xuan Vu ; 10         //  Thay thế kí tự tại vị trí         strBuilder.setCharAt(3,  'x');         System.out.println(strBuilder);  //  Le xuan Vu         //  Đảo chuỗi         strBuilder.reverse();         System.out.println(strBuilder);  //  uV naux eL     } }

  2. #2
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    I wonder what magic that you hid in NewClass [IMG]images/smilies/thinking.gif[/IMG]

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Wazi Armstrong
    I wonder what magic that you hid in NewClass [IMG]images/smilies/thinking.gif[/IMG]
    Hôm qua em học hướng đối tượng trong Java ấy mà , quên chưa bỏ nó đi [IMG]images/smilies/biggrin.png[/IMG] Tiêu đề đã ghi vậy rồi, bác để ý làm gì [IMG]images/smilies/biggrin.png[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu đã viết tut cho newbie thì cố gắng viết thật đơn giản.
    Bất kể ai đọc vào cũng đều confuse về cái NewClass đó, ko rõ nó làm gì?
    Với lại thay vì 1 loạt test API (có thể tự đọc Javadoc) của 2 lớp này bạn có thể viết về đặc điểm của 2 lớp đó, chúng khác nhau như thế nào, khi nào thì dùng String, khi nào dùng StringBuilder, ưu, nhược điểm... vừa ngắn gọn vừa dễ nhớ. Chứ nói thật String có những phương thức thông dụng nào thì mình cũng chẳng nhớ được hết, làm nhiều thì nó thành quen thôi.

    Best regard,

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Em cũng là beginner mà, đầu bài có Beginner to Beginner đó thôi [IMG]images/smilies/biggrin.png[/IMG]
    Bác có vẻ thích reply tiếng việt văng tiếng anh nhở [IMG]images/smilies/biggrin.png[/IMG]


    Chứ nói thật String có những phương thức thông dụng nào thì mình cũng chẳng nhớ được hết, làm nhiều thì nó thành quen thôi.
    Kệ bác, liên quan gì tới em :|

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Rất hoan nghênh tình thần viết TUT của bạn!
    Nhưng có lẽ chưa có kinh nghiệm nên TUT của bạn hơi sơ sài và ko đc cô đọng.

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kqphu
    Rất hoan nghênh tình thần viết TUT của bạn!
    Nhưng có lẽ chưa có kinh nghiệm nên TUT của bạn hơi sơ sài và ko đc cô đọng.
    Cảm ơn bác [IMG]images/smilies/biggrin.png[/IMG]

    Em viết những bài này là cho bản thân và share vì cộng đồng.

    Vì vậy, các bác thấy cần bổ xung gì mong các bác bổ xung bằng việc reply, chứ cứ reply để chê bai thì không có nhiều tác dụng [IMG]images/smilies/biggrin.png[/IMG]

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình đọc chả hiểu bạn viết để làm gì [IMG]images/smilies/biggrin.png[/IMG]

    sự khác nhau giữa 2 cái [IMG]images/smilies/lick.gif[/IMG]

    thanks bạn

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Dù vẫn biết việc bạn có ý định chia sẻ với cộng đồng là 1 việc làm rất đáng được hoan nghênh, tuy nhiên, có lẽ bạn chưa có kinh nghiệm trong việc này. Hiểu và chia sẻ nó cũng là 1 nghệ thuật, ko phải ai hiểu cũng có thể diễn đạt để người khác hiểu, cũng như, đáng buồn hơn là ko phải cái gì mà một người hiểu cũng là cái mà đáng lẽ ra họ nên hiểu. Bạn hiểu chứ? [IMG]images/smilies/biggrin.png[/IMG]

    Ko vòng vo tam quốc làm gì nữa, mình đi thẳng vào vấn đề chính. Thú thực là mình ko hiểu bạn muốn nói cái gì. Trong thư việc Java chuẩn có hàng nghìn class, việc đi tìm hiểu từng class có lẽ là hơi điên rồ. Và cái mà bạn thể hiện ở đây chỉ đơn giản là bạn giởi thiệu cách sử dụng 2 trong số hàng nghìn class đó. Quan trọng hơn là bạn chẳng nói được điểm nhấn mà bạn muốn đề cập ở đây là gì.

    Vì thế bài viết này nếu xét tinh thần thì đáng động viên, nhưng xét về nội dung thì bạn thứ lỗi, với mình, nó vô giá trị.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mọi người làm ơn đọc kĩ tiêu đề chút [IMG]images/smilies/biggrin.png[/IMG]
    "Làm quen" ... "qua ví dụ"

    Để ý 1 chút, trong các ví dụ mình đưa ra, có xen lẫn những kinh nghiệm và lưu ý. ( với 1 số lưu ý, bạn cần debug thử thì mới hiểu được )

    Có thể mình không "pờ rào" như các bạn, nhưng trên là 1 trong những cách học của mình đó.

    Những kiến thức như "nên dùng class String hơn StringBuilder", hay "nên dùng StringBuilder nếu muốn thao tác nhiều với từng kí tự", hay "muốn an toàn trong multithread thì nên dùng StringBuffer", các bạn có thể tham khảo qua javadoc hay các ebook, không thiếu !

    Nhưng nhiều bạn "pờ rào" học những class ấy chỉ bằng cách đọc sơ qua lý thuyết mà không hề thực hành, và cứ nghĩ rằng mình làm nhiều rồi sẽ nhớ; rồi cứ đến khi gặp thao tác với String lại mở javadoc hay ebook ra đọc.

    Thử hỏi, đưa cho bạn 1 máy tính của người khác, không javadoc, không ebook, không internet, để lập trình 1 ứng dụng java, các bạn sẽ làm được chứ ? ( ừa, như đã nói, các bạn "pờ rào" rồi )

    Mặt khác, thay vì thụ động như "gặp String rồi ta tra sau", thì ta chủ động thực hành qua các tính năng của class trước, và khi gặp vấn đề nào đó tương tự, ta có thể nhớ được cách làm và những kinh nghiệm vì ta đã từng làm rồi ; chẳng phải tuyệt hơn sao ?

    Mình mới học Java được gần 1 tuần thôi, có sai xót gì mong mọi người góp ý.

 

 
Trang 1 của 6 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •