SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
String Operations - 05                                                 Computer Programming using Java                 53
   CHAPTER                                          การดําเนินการกับสตริง
      05                                              (String Operations)
1. ลักษณะทั่วไปของสตริง (Characteristic of String)
1. นิยามและข้ อมลเบืองต้ นของสตริง
                   ู ้
   1) สตริ ง (String) หรื อ สายอักขระ คือ อักขระ (Character) ตังแต่ศูนย์ ตัวขึ ้นไปมาเรี ยงต่อกันอยู่ภายใต้ เครื่ อง
                                                                ้
       หมาย Double Quote เช่น "Hello", "F", "@123", "ดําเกิง หนองกระโทก", " ", "" เป็ นต้ น
   2) เรี ยก "" (เครื่ องหมาย Double Quote ติดกัน) ว่า สตริ งว่าง (Empty String / Null String) ซึงเป็ นสตริ งที่มี
                                                                                                      ่
       ความยาวหรื อจํานวนอักขระเป็ นศูนย์
   3) การประกาศตัวแปรประเภทสตริ งทําได้ ดงนี ้ั                     คําว่า String จะต้ องเขียนขึ ้นต้ นด้ วย
          String <ชื่อสตริ ง> = "<ค่าสตริ ง>";
                                                                       อักษร S แบบพิมพ์ใหญ่เสมอ

       เช่น String s = "Hello Engineering";                           ค่าของสตริงต้ องคล่อมด้ วย "..." เสมอ

    4) การนําเข้ าสตริ งจากแปนพิมพ์ จะใช้ เมท็อดของคลาส Scanner ซึงได้ กล่าวไปแล้ วในบทที่ 2 โดยประกอบ
                             ้                                            ่
       ไปด้ วยเมท็อดดังนี ้
            nextLine() เป็ นการรับสตริ งทีละบรรทัด

            next() เป็ นการรับสตริ งทีละช่วงหรื อทีละคํา (รับสตริ งช่วงแรกหรื อคําแรกจากซ้ ายมือ)

    5) สตริ งมีตวดําเนินการพื ้นฐานดังต่อไปนี ้
                ั
        รปแบบ ข้ อมลที่ 1
          ู              ู            กลุ่มของตัวดําเนินการ              ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย
                                                                              ู                         ู
            1.       String                       =                       String String
            2.       String                       +                      ทุกประเภท String (การต่อสตริ ง)
            3.      ทุกประเภท                     +                       String String (การต่อสตริ ง)
            4.       String                     == !=                     String boolean


2. โครงสร้ างของสตริง
   1) สตริ งเป็ นคลาสมาตรฐานในภาษาจาวา โดยโครงสร้ างภายในเขียนด้ วยอาเรย์ของตัวอักขระ (Array of
      Character) ดังตัวอย่าง                              หรื ออาจจะเขียนสตริงในรูปของอ๊ อบเจ็คดังนี ้
           สตริ งในรูปทัวไป String s = "Java";
                        ่                                 String s = new String("Java");

           สตริ งในรูปอาเรย์ char s[] = {'J', 'a', 'v', 'a'};
   2) ตําแหน่ง (Index) ของสตริ งจะเริ่มนับที่ 0 แต่ความยาว (Length) ของสตริงจะเริ่ มนับที่ 1 ดังตัวอย่าง
        String s = "JAVA CHULA.";
                                                                         หมายเลขตําแหน่ง (Index)
          0    1     2    3     4    5     6    7    8     9    10
          J    A     V    A          C    H     U    L     A    .       สตริงยาว 11 อักขระ แต่ตําแหน่งสูงสุดคือ 10
    3) สตริงมีเมท็อดให้ เรี ยกใช้ งานมากมายดังรายละเอียดในหัวข้ อถัดไป
© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
54     Computer Programming using Java                                                           05 - String Operations


     2. การดําเนินการที่เกี่ยวกับสตริง (Operations of String)
     1. วิธีเรียกใช้ เมท็อดจากคลาส String
        เนื่องจากสตริ งเป็ นตัวแปรที่ถกสร้ างขึ ้นจากคลาส String ดังนันการดําเนินการส่วนใหญ่ของสตริ งจะต้ องกระ-
                                      ู                               ้
        ทําภายใต้ เมท็อดของสตริงหรื อเมท็อดที่เกี่ยวข้ องกับสตริง โดยมีวิธีการเรี ยกใช้ เมท็อดดังนี ้
          <ชื่อสตริ ง>.<ชื่อเมท็อด>([พารามิเตอร์ ])            เช่น   s.length(), n.charAt(4) เป็ นต้ น


     2. เมท็อดจากคลาส String
        1) เมท็อดหาความยาวของสตริง (String Length)
              <สตริ ง>.length()                                    จะคืนค่าจํานวนเต็ม ซึงเป็ นความยาวของสตริ ง
                                                                                        ่

             ตัวอย่างเช่น
             String name = "Suda Rukchula";
             int len = name.length(); //len = 13

         2) เมท็อดตัดช่ องว่ างทางซ้ ายและขวาของสตริงออกไป (String Trim)
              <สตริ ง>.trim()                                      จะคืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตดช่องว่าง
                                                                                                         ั
                                                                   (Space) ทางซ้ ายและขวาของสตริงออกไป
             ตัวอย่างเช่น
             String m = "    Hello JAVA ";
             String n = m.trim(); //n = "Hello JAVA"

         3) เมท็อดแปลงสตริงให้ เป็ นอักษรตัวพิมพ์ ใหญ่ (String to Upper Case)
              <สตริ ง>.toUpperCase()                               จะคืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตวอักษร
                                                                                                         ั
                                                                   อังกฤษทุกตัวจะเปลี่ยนเป็ นตัวพิมพ์ใหญ่
             ตัวอย่างเช่น
             String m = "Hello! JaVa 2010";
             m = m.toUpperCase(); //m = "HELLO! JAVA 2010"

         4) เมท็อดแปลงสตริงให้ เป็ นอักษรตัวพิมพ์ เล็ก (String to Lower Case)
              <สตริ ง>.toLowerCase()                               คืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตวอักษรอังกฤษ
                                                                                                       ั
                                                                   ทุกตัวจะเปลี่ยนเป็ นตัวพิมพ์เล็ก
             ตัวอย่างเช่น
             String m = "$Hello JAVA #2553";
             m = m.toLowerCase(); //m = $hello java #2553

         5) เมท็อดตัดสตริงย่ อย (Substring)                      เป็ นตําแหน่งเริ่มต้ นและตําแหน่งสิ ้นสุดของสตริงย่อย
              <สตริ ง>.substring(<เริ่ มต้ น>,<สิ ้นสุด>)          คืนค่าสตริงที่เป็ นสตริงย่อยตังแต่ตําแหน่งเริ่มต้ น
                                                                                                 ้
             ตัวอย่างเช่น                                          จนถึงก่อนตําแหน่งสิ ้นสุด
             String name = "Chulalongkorn University";
             String s1 = name.substring(9, 16); //s1 = "korn Un"
             String s2 = name.substring(0, 5) + "Thailand"; //s2 = "ChulaThailand"

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
String Operations - 05                                                Computer Programming using Java                 55
         <สตริ ง>.substring(<ตําแหน่ง>)                        คืนค่าสตริงที่เป็ นสตริงย่อยตังแต่ตําแหน่งที่ระบุ
                                                                                             ้
                                                               จนถึงตําแหน่งสุดท้ าย
        ตัวอย่างเช่น
        String name = "Chulalongkorn University";
        String s1 = name.substring(14); //s1 = "University"
        String s2 = name.substring(20); //s2 = "sity"

    6) เมท็อดหาตัวอักขระ ณ ตําแหน่ งที่ระบุในสตริง (Character At)
        <สตริ ง>.charAt(<ตําแหน่ง>)                   คืนค่=อัตัขระในตําแหน่แหน่ง
                                                         i า กวเลขระบุตํา งที่ระบุ

        ตัวอย่างเช่น
        String m = "Hello JAVA";
        char ch1 = m.charAt(0); //ch1 = 'H'
        char ch2 = m.charAt(6); //ch2 = 'J'

    7) เมท็อดหาตําแหน่ งที่พบเป็ นครั งแรกของสตริงย่ อยในสตริงหลัก (Index Of)
                                      ้
        <สตริ ง>.indexOf(<สตริ ง>)                      คืนs าจํานวนเต็อย่เป็ นตําแหน่งของสตริงย่อยใน
                                                           ค่ = สตริ งย่มที
                                                               สตริงหลักที่พบเป็ นครังแรก ถ้ าไม่พบจะคืนค่า -1
                                                                                     ้
        ตัวอย่างเช่น
        String m = "Hello JAVA";
        int i = m.indexOf("l"); //i = 2
        int j = m.indexOf("lo"); //j = 3
        int k = m.indexOf("F"); //k = -1

    8) เมท็อดหาตําแหน่ งที่พบเป็ นครั งสุดท้ ายของสตริงย่ อยในสตริงหลัก (Last Index Of)
                                      ้
        <สตริ ง>.lastIndexOf(<สตริ ง>)                     คืนs าจํสตริ งย่อย่เป็ นตําแหน่งของสตริงย่อยในสตริง
                                                              ค่= านวนเต็มที
                                                               หลักที่พบเป็ นครังสุดท้ าย ถ้ าไม่พบจะคืนค่า -1
                                                                                ้
        ตัวอย่างเช่น
        String m = "Hello JAVA";
        int i = m.lastIndexOf("A"); //i = 9                      เริ่มนับที่ตําแหน่งที่ 0 (ซ้ ายไปขวา)
        int j = m.lastIndexOf("AV"); //j = 7
        int k = m.lastIndexOf("b"); //k = -1

    9) เมท็อดเปรียบเทียบการเท่ ากันทุกประการของสตริง
         <สตริ ง>.equals(<สตริ ง>)                             คืนค่าความจริ งที่เป็ น true ถ้ าสตริงเท่ากันทุกประ-
                                                               การ หรื อ false ถ้ าสตริงไม่เท่ากันทุกประการ
        ตัวอย่างเช่น
        String s1 = "E-mail";        เปรี ยบเทียบสตริง s1 กับสตริง s2
        String s2 = "e-mail";
        boolean flag = s1.equals(s2); //flag = false

    10) เมท็อดเปรียบเทียบการเท่ ากันของสตริงโดยไม่ สนใจตัวอักษรพิมพ์ ใหญ่ หรือพิมพ์ เล็ก
         <สตริ ง>.equalsIgnoreCase(<สตริ ง>)                   คืนค่าความจริ งที่เป็ น true ถ้ าสตริงเท่ากัน หรื อ
                                                               false ถ้ าสตริ งไม่เท่ากัน โดยไม่สนใจตัวอักษร
        ตัวอย่างเช่น
        String s1 = "E-mail";                                  พิมพ์ใหญ่พิมพ์เล็ก
        String s2 = "e-mail";
        boolean flag = s1.equalsIgnoreCase(s2);                  //flag = true

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
56     Computer Programming using Java                                                              05 - String Operations


         11) เมท็อดเปรียบต่ างลําดับของสตริง (ใช้ ค่า Unicode ในการเปรี ยบต่ าง)
                                                                    คืนค่า 0 เมื่อสตริงทังสองเท่ากัน
                                                                                         ้                  เปรี ยบเทียบรหัส
              <สตริ ง>.compareTo(<สตริ ง>)
                                                                                                            Unicode ของอัก-
             ตัวอย่างเช่น                    คืนค่าที่น้อยกว่า 0 เมื่อสตริ งตัวแรกมาก่อนสตริ งตัวหลัง       ขระทีละตัวเริ่ม
             String s1 = "E-mail";           คืนค่าที่มากกว่า 0 เมื่อสตริงตัวแรกมาหลังสตริ งตัวหลัง         จากซ้ ายไปขวา
             String s2 = "e-mail";
             int flag = s1.compareTo(s2);             //flag = -32

     โจทย์ ข้อที่ 1 [ระดับง่ าย] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์
                                                                                         ้      ู
     พร้ อมทังระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (20 คะแนน)
              ้                 ู
      String a = "I Love Java";
      String b = "Chula ";

      ข้ อ ประเภทตัวแปร                   การประกาศและกําหนดค่ าตัวแปร                                  ค่ าที่เก็บในตัวแปร
       1.                     var = b.length();

       2.                     var = b.trim().length();

       3.                     var = "t".length();

       4.                     var = "ntu0000".length();

       5.                     var = b.toUpperCase() + b.toLowerCase();

       6.                     var = a.charAt(4);

       7.                     var = a.indexOf("v");

       8.                     var = a.lastIndexOf("v");

       9.                     var = a.indexOf("ava");

      10.                     var = a.lastIndexOf("ava");

      11.                     var = a.indexOf("java");

      12.                     var = a.toLowerCase().indexOf("java");

      13.                     var = a.substring(6, a.length()).trim() + b;

      14.                     var = a.substring(0, 4);

      15.                     var = a.toLowerCase().substring(2);

      16.                     var = a.substring(7).equals("java");

      17.                     var = "Java".equalsIgnoreCase("java");

      18.                     var = ".".equals(".".toUpperCase());

      19.                     var = "Jaba".compareTo("Java");

      20.                     var = "a".compareTo(a.charAt(8));



     3. เมท็อดอื่นๆ ที่เกี่ยวกับสตริง
        1) การแปลงสตริงให้ เป็ นตัวเลขจํานวนเต็ม (String to Integer)
     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
String Operations - 05                                             Computer Programming using Java                 57
         Integer.parseInt(<สตริ ง>)                          คืนค่าจํานวนเต็มที่มาจากสตริงที่เป็ นตัวเลขจํานวน
                                                             เต็ม (ห้ ามมีอกขระอื่นๆ ที่ไม่ใช่ตวเลขปะปน)
                                                                           ั                   ั
        ตัวอย่างเช่น
        String price = "500";
        int p = Integer.parseInt(price);             //p = 500
        int len = p.length(); //Error

    2) การแปลงสตริงให้ เป็ นตัวเลขจํานวนจริง (String to Double)
         Double.parseDouble(<สตริ ง>)                        คืนค่าจํานวนจริ งที่มาจากสตริงที่เป็ นตัวเลขจํานวน
                                                             จริ งหรื อจํานวนเต็ม
        ตัวอย่างเช่น
        String price = "500.0";
        double p = Double.parseDouble(price);               //p = 500.0

    3) การแปลงตัวเลขจํานวนเต็มให้ เป็ นสตริง (Integer to String)
         Integer.toString(<จํานวนเต็ม>)                      คืนค่าสตริงที่มีค่าเหมือนกับตัวเลขจํานวนเต็มที่ระบุ
                                                             (หรื อใช้ วิธี <จํานวนเต็ม> + "")
        ตัวอย่างเช่น
        int price = 500;
        String p = Integer.toString(price);              //p = "500"

    4) การแปลงตัวเลขจํานวนจริงให้ เป็ นสตริง (Double to String)
         Double.toString(<จํานวนจริ ง>)                      คืนค่าสตริงที่มีค่าเหมือนกับตัวเลขจํานวนจริงที่ระบุ
                                                             (หรื อใช้ วิธี <จํานวนจริง> + "")
        ตัวอย่างเช่น
        double price = 500.0;
        String p = Double.toString(price);              //p = "500.0"


โจทย์ ข้อที่ 2 [ระดับง่ าย] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์
                                                                                    ้      ู
พร้ อมทังระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (10 คะแนน)
         ้                 ู
 String a = "2000";                                      int n = 2000;
 String b = "1000.000";                                  double m = 1000.000;


 ข้ อ ประเภทตัวแปร                   การประกาศและกําหนดค่ าตัวแปร                           ค่ าที่เก็บในตัวแปร
 1.                      var = Integer.parseInt(a);

 2.                      var = Integer.parseInt(b);

 3.                      var = Double.parseDouble(a);

 4.                      var = Double.parseDouble(b);

 5.                      var = Integer.toString(n);

 6.                      var = Integer.toString(m);

 7.                      var = Double.toString(n);

 8.                      var = Double.toString(m);


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
58     Computer Programming using Java                                                    05 - String Operations


      ข้ อ ประเภทตัวแปร                   การประกาศและกําหนดค่ าตัวแปร                       ค่ าที่เก็บในตัวแปร
      *9.                     var = Integer.toString(n) == (n + "");

      10.                     var = Integer.toString(n).equals(n + "");


     โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนส่ วนหนึ่งของโปรแกรมจากข้ อกําหนดต่ อไปนี ้ (8 คะแนน)
      String p = "A1234567Java";
      String r = "F6543210Jaba";


     1) เปลี่ยนค่ าในตัวแปร p และ r ให้ เป็ นตัวพิมพ์ ใหญ่ ทงหมดโดยห้ ามประกาศตัวแปรใหม่ (2 คะแนน)
                                                            ั้



     2) ประกาศตัวแปรตรรกะ y เพื่อเก็บผลการเปรี ยบเทียบอักขระตัวที่ 5 ของตัวแปร p และ r โดยสมมุติ
        ให้ ตวแปรทังสองมีความยาวเกิน 5 อักขระ และห้ ามประกาศตัวแปรอื่นๆ เพิ่มเติม (2 คะแนน)
             ั     ้



     3) ประกาศตัวแปรจํานวนจริ ง m เพื่อเก็บผลการเปลี่ยนสตริงตังแต่ ตัวที่ 2 จนถึงตัวที่ 6 ของตัวแปร p
                                                                  ้
        ให้ เป็ นตัวเลขจํานวนจริง โดยห้ ามประกาศตัวแปรอื่นๆ เพิ่มเติม (2 คะแนน)



     โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บคํา (Words) จากแปนพิมพ์ เข้ ามา
                                                                  ู                            ้
     ทีละคํา โดยให้ โปรแกรมวนรั บคําไปเรื่ อยๆ จนกว่ าผ้ ูใช้ จะพิมพ์ คาว่ า “Stop” (ไม่ สนใจอักษรพิมพ์ ใหญ่
                                                                       ํ
     พิมพ์ เล็ก) จึงจะจบการวนซํา พร้ อมทังแสดงผลลัพธ์ ของคําทุกคําคั่นด้ วยช่ องว่ างออกทางจอภาพ ดังตัว-
                                   ้       ้
     อย่ างต่ อไปนี ้ (10 คะแนน)                                                  Enter Word: I
                                                                                   Enter Word:     love
                                                                                   Enter Word:     JAVA
                                                                                   Enter Word:     very
                                                                                   Enter Word:     much
                                                                                   Enter Word:     sToP
                                                                                   I love JAVA     very much




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
String Operations - 05                                             Computer Programming using Java              59
โจทย์ ข้อที่ 5 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บประโยคจากแปนพิมพ์ หนึ่ง
                                                                   ู                ้
ประโยค แล้ วทําการตัดช่ องว่ างทุกช่ องในประโยคนั นออกไป โดยให้ เหลือเพียงอักขณะอื่นๆ ที่ไม่ ใช่
                                                     ้
ช่ องว่ าง พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพดังตัวอย่ างต่ อไปนี ้ (10 คะแนน)
                   ้               ี
                                                                     Enter Sentence: We love JAVA
                                                                     WeloveJAVA




โจทย์ ข้อที่ 6 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บประโยคจากแปนพิมพ์ หนึ่ง
                                                                 ู                ้
ประโยคแล้ วทําการกลับ (Reverse) ประโยคนันเสียใหม่ โดยเรี ยงอักขระทุกตัวจากหลังมาหน้ า (ขวาไป
                                            ้
ซ้ าย) พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพดังตัวอย่ างต่ อไปนี ้ (10 คะแนน)
                ้              ี
                                                                    Enter Sentence: We love JAVA
                                                                    AVAJ evol eW




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
60     Computer Programming using Java                                                    05 - String Operations


     โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บชื่อ-นามสกุลที่แบ่ งด้ วยช่ อง
                                                                        ู
     ว่ างอย่ างน้ อยหนึ่งช่ องขึนไปเก็บไว้ ในตัวแปร fullName หลังจากนั นให้ ทําการแยกชื่อและนามสกุล
                                 ้                                           ้
     ออกเป็ น 2 ส่ วนคือ ส่ วนแรก “ชื่ อ” ให้ เก็บไว้ ในตัวแปร firstName พร้ อมแสดงผลเป็ นตัวอักษรตัวพิมพ์
     ใหญ่ และส่ วนที่สอง “นามสกุล” ให้ เก็บไว้ ในตัวแปร lastName พร้ อมแสดงผลเป็ นตัวอักษรตัวพิมพ์ เล็ก
     แต่ ถ้าการรั บชื่อ-นามสกุลจากแปนพิมพ์ ไม่ ถกต้ องจะแสดงข้ อความว่ า “Incorrect Name” (10 คะแนน)
                                       ้           ู
                                                                             Full Name: Wayne Rooney
                                                                             First Name : WAYNE
                                                                             Last Name : rooney

                                                                             Full Name: Wayne           Rooney
                                                                             First Name : WAYNE
                                                                             Last Name : rooney

                                                                             Full Name: Rooney
                                                                             Incorrect Name




     โจทย์ ข้อที่ 8 [ระดับปานกลาง] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อตัดค่ า Title และ URL ในโค๊ ด
     เว็บเพจที่เขียนด้ วยภาษาเอชทีเอ็มแอล (HTML) ต่ อไปนี ้ (8 คะแนน)
      1   <html>                Title
      2     <head>
      3       <title>First Web Page</title>
      4     </head>                           URL
      5     <body>
      6       <a href="http://www.javachula.co.cc">JavaChula</a>
      7     </body>
      8   </html>

     1) ประกาศตัวแปร s1 เพื่อเก็บโค๊ ดเว็บเพจในบรรทัดที่ 3 และตัวแปร s2 เพื่อเก็บโค๊ ดเว็บเพจในบรร-
        ทัดที่ 6 (2 คะแนน)



     2) ประกาศตัวแปร title เพื่อเก็บค่ า Title ที่ได้ จากการตัดโค๊ ดเว็บเพจในตัวแปร s1 (3 คะแนน)




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
String Operations - 05                                             Computer Programming using Java              61
3) ประกาศตัวแปร url เพื่อเก็บค่ า URL ที่ได้ จากการตัดโค๊ ดเว็บเพจในตัวแปร s2 (3 คะแนน)




โจทย์ ข้อที่ 9 [ระดับปานกลาง] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อตัดค่ าของวัน เดือน ปี จากตัว
แปรสตริ ง d ที่รับค่ าวัน เดือน ปี จากแปนพิมพ์ ไว้ เรี ยบร้ อยแล้ วในรปแบบของ "1/12/2012" หรื อ
                                           ้                          ู
"13/6/2010" เป็ นต้ น พร้ อมทังแสดงผลลัพธ์ ของวัน เดือน ปี ออกทางจอภาพทีละบรรทัด (6 คะแนน)
                              ้




โจทย์ ข้อที่ 10 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บข้ อความหนึ่งข้ อความจาก
                                                                      ู
แปนพิมพ์ เพื่อนํามาตรวจสอบว่ าข้ อความดังกล่ าวเป็ นข้ อความแบบพาลินโดรม (Palindrome) หรื อไม่
   ้
โดยพาลินโดรมคือข้ อความที่อ่านจากหน้ าไปหลังเหมือนกับอ่ านจากหลังไปหน้ า เช่ น "level", "2552",
"race car", "I prefer pi" เป็ นต้ น ทังนีจะไม่ สนใจช่ องว่ างและตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กในการอ่ าน
                                      ้ ้
แต่ อย่ างใด (10 คะแนน)                                                        Text: I prefer pi
                                                                               It is palindrome

                                                                               Text: I prefer Java
                                                                               It is not palindrome




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
62     Computer Programming using Java                                                      05 - String Operations


     โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อรั บข้ อความที่ประกอบไปด้ วยตัว-
                                                                    ู
     เลขและตัวอักษรปะปนกัน โดยไม่ จํากั ดความยาว จากนั นให้ ทําการตรวจสอบอักขระทีละตัวว่ าเป็ น
                                                                ้
     ตัวเลขหรื อตัวอักษร ถ้ าเป็ นตัวเลขจะนํามาหา [1] ค่ ามากที่สุด [2] ค่ าน้ อยที่สุด และ [3] ค่ าเฉลี่ย ถ้ าเป็ น
     ตัวอักษรจะนับจํานวนอักษรทังหมดที่พบ พร้ อมทังแสดงผลลัพธ์ ทัง 4 ค่ าออกทางจอภาพ (ห้ ามใช้ เมท็
                                     ้                ้                 ้
     อดจากคลาส Math) (10 คะแนน)                                       STRING: loveU2java37A1cu5
                                                                         MAX VALUE: 7
     import java.util.Scanner;                                           MIN VALUE: 1
     public class NumberAndCharacter {                                   AVERAGE VALUE (18/5): 3.6
       public static void main(String[] args) {                          TOTAL CHARACTER: 12




       } //End of main
     } //End of class


     โจทย์ ข้อที่ 12 [ระดับยาก] ในการสร้ างโปรแกรมสนทนาผ่ านทางอินเตอร์ เน็ตของบริษัทลานเกียร์ จากัด           ํ
     ชื่อว่ าโปรแกรม “เกรี ยนแชท” (Noob Chat) ซึ่งต้ องตรวจสอบข้ อความที่ผู้ใช้ พิมพ์ เข้ ามาสนทนากัน ว่ ามี
     คําหยาบ ซึ่งได้ แก่ “Shit” “Fuck” และ “Java” อย่ ูหรื อไม่ ซึ่งไม่ ว่าเป็ นตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กก็
     สามารถตรวจสอบได้ ทุกกรณี ถ้ าตรวจสอบแล้ วไม่ มีคาหยาบปรากฎ ให้ แสดงข้ อความนันบนจอภาพ ถ้ า
                                                           ํ                                     ้
     ไม่ เช่ นนันให้ แสดงข้ อความว่ ามีคาหยาบบนจอภาพ ดังตัวอย่ างต่ อไปนี ้ (15 คะแนน)
                ้                       ํ
     import java.util.Scanner;
     public class NoobChat {                                                 Message: Hello F
                                                                             Hello F
       public static void main(String[] args) {

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
String Operations - 05                                             Computer Programming using Java              63
                                                                       Message: I love Java
                                                                       Java is Bad Word.

                                                                       Message: fUCk you java
                                                                       Fuck Java are Bad Words.




  } //End of main
} //End of class


โจทย์ ข้อที่ 13 [ระดับเทพ] จากที่โปรแกรม “เกรี ยนแชท” (Noob Chat) ของบริ ษัทลานเกียร์ จากัดซึ่งเขียน
                                                                                              ํ
โดยนิสิตวิศวะฯ ปี 1 ได้ ถูกนําไปใช้ งานในระบบจริ งแล้ วปรากฎว่ า ยังมีบัก (Bug) เกิดขึนอีกมาก นั่นคือ
                                                                                        ้
ไม่ สามารถรับข้ อความที่มากกว่ า 1 บรรทัดได้ และไม่ สามารถนับจํานวนคําหยาบที่ปรากฏในข้ อความได้
ดังนันบริษัทลานเกียร์ จงส่ งโปรแกรมดังกล่ าวกลับมายังนิสิตผ้ ูพัฒนา เพื่อปรับปรุ งให้ สมบรณ์ และเปลี่ยน
      ้                    ึ                                                              ู
ชื่อใหม่ เป็ นโปรแกรม “เกรี ยนเทพแชท” (God Noob Chat) โดยมีรายละเอียดดังนี ้ (20 คะแนน)
1) รับข้ อความจากแปนพิมพ์ ได้ ไม่ จากัดบรรทัด และจบเมื่อพิมพ์ จุด (Dot) ติดต่ อกัน 3 ครั ง
                         ้             ํ                                                    ้
2) ตรวจสอบข้ อความที่พมพ์ เข้ ามาว่ ามีคาหยาบอย่ ูหรือไม่ ซึ่งได้ แก่ “Shit” “Fuck” และ “Java” ไม่ ว่าเป็ น
                             ิ             ํ
     ตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กก็สามารถตรวจสอบได้ ทุกกรณี และไม่ ว่าคําหยาบจะถกแบ่ งด้ วย
                                                                                                ู
     ช่ องว่ างเช่ น “F U C K” ก็สามารถตรวจสอบได้ เช่ นกัน
3) นับจํานวนคําหยาบแต่ ละคําที่ปรากฎในข้ อความและแสดงจํานวนคําหยาบที่ตรวจพบบนจอภาพ
4) ถ้ าตรวจสอบแล้ วไม่ มีคาหยาบปรากฎให้ แสดงข้ อความนันบนจอภาพ ถ้ าไม่ เช่ นนันให้ แสดงข้ อความ
                               ํ                           ้                          ้
     ว่ ามีคาหยาบบนจอภาพ
             ํ
import java.util.Scanner;
public class GodNoobChat {
  public static void main(String[] args) {

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
64     Computer Programming using Java                                                    05 - String Operations


                                                                          Message:
                                                                          F U C K you JaVA
                                                                          JA V a ShiTTtt FU
                                                                          C    King
                                                                          ...
                                                                          Count "Shit": 1
                                                                          Count "Fuck": 2
                                                                          Count "Java": 2
                                                                          Shit Fuck Java are bad words.




       } //End of main
     } //End of class

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้

Weitere ähnliche Inhalte

Was ist angesagt?

Passing an Array to a Function (ICT Programming)
Passing an Array to a Function (ICT Programming)Passing an Array to a Function (ICT Programming)
Passing an Array to a Function (ICT Programming)
Fatima Kate Tanay
 

Was ist angesagt? (20)

Proxy design pattern
Proxy design patternProxy design pattern
Proxy design pattern
 
Java &amp; advanced java
Java &amp; advanced javaJava &amp; advanced java
Java &amp; advanced java
 
Passing an Array to a Function (ICT Programming)
Passing an Array to a Function (ICT Programming)Passing an Array to a Function (ICT Programming)
Passing an Array to a Function (ICT Programming)
 
Object oriented approach in python programming
Object oriented approach in python programmingObject oriented approach in python programming
Object oriented approach in python programming
 
Java input
Java inputJava input
Java input
 
Java literals
Java literalsJava literals
Java literals
 
Arrays & Strings
Arrays & StringsArrays & Strings
Arrays & Strings
 
3 java - variable type
3  java - variable type3  java - variable type
3 java - variable type
 
Basic i/o & file handling in java
Basic i/o & file handling in javaBasic i/o & file handling in java
Basic i/o & file handling in java
 
Unit 9. Structure and Unions
Unit 9. Structure and UnionsUnit 9. Structure and Unions
Unit 9. Structure and Unions
 
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונותג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
ג'אווה - תכנות מונחה עצמים - מתודות - דריסה/חפיפה, העמסה ומתודות בונות
 
Java Docs
Java DocsJava Docs
Java Docs
 
Control statements in java programmng
Control statements in java programmngControl statements in java programmng
Control statements in java programmng
 
Java tokens
Java tokensJava tokens
Java tokens
 
Strings in Java
Strings in JavaStrings in Java
Strings in Java
 
Java Collection framework
Java Collection frameworkJava Collection framework
Java Collection framework
 
Serialization in java
Serialization in javaSerialization in java
Serialization in java
 
Packages and inbuilt classes of java
Packages and inbuilt classes of javaPackages and inbuilt classes of java
Packages and inbuilt classes of java
 
C# Delegates
C# DelegatesC# Delegates
C# Delegates
 
Arrays
ArraysArrays
Arrays
 

Andere mochten auch

โปรแกรมแปลงค่าเงิน JAVA
โปรแกรมแปลงค่าเงิน JAVAโปรแกรมแปลงค่าเงิน JAVA
โปรแกรมแปลงค่าเงิน JAVA
Tor' Thepparat
 
การเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beansการเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beans
Apisit Song
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
Wongyos Keardsri
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
Wongyos Keardsri
 

Andere mochten auch (18)

Java-Chapter 08 Methods
Java-Chapter 08 MethodsJava-Chapter 08 Methods
Java-Chapter 08 Methods
 
Java-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and ApplicationsJava-Chapter 09 Advanced Statements and Applications
Java-Chapter 09 Advanced Statements and Applications
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
โปรแกรมแปลงค่าเงิน JAVA
โปรแกรมแปลงค่าเงิน JAVAโปรแกรมแปลงค่าเงิน JAVA
โปรแกรมแปลงค่าเงิน JAVA
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
Java-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration StatementsJava-Chapter 04 Iteration Statements
Java-Chapter 04 Iteration Statements
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
 
การเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beansการเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beans
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and Objects
 
IP address anonymization
IP address anonymizationIP address anonymization
IP address anonymization
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
 

Ähnlich wie Java-Chapter 05 String Operations

บทที่ 10 ตัวแปรสตริ
บทที่ 10 ตัวแปรสตริบทที่ 10 ตัวแปรสตริ
บทที่ 10 ตัวแปรสตริ
Theeravaj Tum
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
Areeya Onnom
 
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
Areeya Onnom
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
prapassonmook
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
Little Tukta Lita
 

Ähnlich wie Java-Chapter 05 String Operations (20)

ข้อมูลชนิด Array
ข้อมูลชนิด Arrayข้อมูลชนิด Array
ข้อมูลชนิด Array
 
ข้อมูลชนิด Array
ข้อมูลชนิด Arrayข้อมูลชนิด Array
ข้อมูลชนิด Array
 
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่5 ข้อมูลชนิดอาร์เรย์และสตริง
 
บทที่ 10 ตัวแปรสตริ
บทที่ 10 ตัวแปรสตริบทที่ 10 ตัวแปรสตริ
บทที่ 10 ตัวแปรสตริ
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
ตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระตัวแปรชุดและตัวแปรอักขระ
ตัวแปรชุดและตัวแปรอักขระ
 
08 arrays
08 arrays08 arrays
08 arrays
 
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPTตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
 
Array
ArrayArray
Array
 
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 
02 basic
02 basic02 basic
02 basic
 
Java Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุตJava Programming: คลาสอินพุตและเอาต์พุต
Java Programming: คลาสอินพุตและเอาต์พุต
 
Vsd2013 05 string
Vsd2013 05 stringVsd2013 05 string
Vsd2013 05 string
 
Limit
LimitLimit
Limit
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 09
 
Java Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุมJava Programming: โครงสร้างควบคุม
Java Programming: โครงสร้างควบคุม
 

Mehr von Wongyos Keardsri

SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
Wongyos Keardsri
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
Wongyos Keardsri
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Wongyos Keardsri
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Wongyos Keardsri
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Wongyos Keardsri
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Wongyos Keardsri
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Wongyos Keardsri
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Wongyos Keardsri
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Wongyos Keardsri
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Wongyos Keardsri
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Wongyos Keardsri
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Wongyos Keardsri
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Wongyos Keardsri
 

Mehr von Wongyos Keardsri (19)

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
 
Discrete-Chapter 10 Trees
Discrete-Chapter 10 TreesDiscrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
 
Discrete-Chapter 01 Sets
Discrete-Chapter 01 SetsDiscrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
 

Java-Chapter 05 String Operations

  • 1. String Operations - 05 Computer Programming using Java 53 CHAPTER การดําเนินการกับสตริง 05 (String Operations) 1. ลักษณะทั่วไปของสตริง (Characteristic of String) 1. นิยามและข้ อมลเบืองต้ นของสตริง ู ้ 1) สตริ ง (String) หรื อ สายอักขระ คือ อักขระ (Character) ตังแต่ศูนย์ ตัวขึ ้นไปมาเรี ยงต่อกันอยู่ภายใต้ เครื่ อง ้ หมาย Double Quote เช่น "Hello", "F", "@123", "ดําเกิง หนองกระโทก", " ", "" เป็ นต้ น 2) เรี ยก "" (เครื่ องหมาย Double Quote ติดกัน) ว่า สตริ งว่าง (Empty String / Null String) ซึงเป็ นสตริ งที่มี ่ ความยาวหรื อจํานวนอักขระเป็ นศูนย์ 3) การประกาศตัวแปรประเภทสตริ งทําได้ ดงนี ้ั คําว่า String จะต้ องเขียนขึ ้นต้ นด้ วย String <ชื่อสตริ ง> = "<ค่าสตริ ง>"; อักษร S แบบพิมพ์ใหญ่เสมอ เช่น String s = "Hello Engineering"; ค่าของสตริงต้ องคล่อมด้ วย "..." เสมอ 4) การนําเข้ าสตริ งจากแปนพิมพ์ จะใช้ เมท็อดของคลาส Scanner ซึงได้ กล่าวไปแล้ วในบทที่ 2 โดยประกอบ ้ ่ ไปด้ วยเมท็อดดังนี ้ nextLine() เป็ นการรับสตริ งทีละบรรทัด next() เป็ นการรับสตริ งทีละช่วงหรื อทีละคํา (รับสตริ งช่วงแรกหรื อคําแรกจากซ้ ายมือ) 5) สตริ งมีตวดําเนินการพื ้นฐานดังต่อไปนี ้ ั รปแบบ ข้ อมลที่ 1 ู ู กลุ่มของตัวดําเนินการ ข้ อมลที่ 2 ประเภทข้ อมลสุดท้ าย ู ู 1. String = String String 2. String + ทุกประเภท String (การต่อสตริ ง) 3. ทุกประเภท + String String (การต่อสตริ ง) 4. String == != String boolean 2. โครงสร้ างของสตริง 1) สตริ งเป็ นคลาสมาตรฐานในภาษาจาวา โดยโครงสร้ างภายในเขียนด้ วยอาเรย์ของตัวอักขระ (Array of Character) ดังตัวอย่าง หรื ออาจจะเขียนสตริงในรูปของอ๊ อบเจ็คดังนี ้ สตริ งในรูปทัวไป String s = "Java"; ่ String s = new String("Java"); สตริ งในรูปอาเรย์ char s[] = {'J', 'a', 'v', 'a'}; 2) ตําแหน่ง (Index) ของสตริ งจะเริ่มนับที่ 0 แต่ความยาว (Length) ของสตริงจะเริ่ มนับที่ 1 ดังตัวอย่าง String s = "JAVA CHULA."; หมายเลขตําแหน่ง (Index) 0 1 2 3 4 5 6 7 8 9 10 J A V A C H U L A . สตริงยาว 11 อักขระ แต่ตําแหน่งสูงสุดคือ 10 3) สตริงมีเมท็อดให้ เรี ยกใช้ งานมากมายดังรายละเอียดในหัวข้ อถัดไป © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 54 Computer Programming using Java 05 - String Operations 2. การดําเนินการที่เกี่ยวกับสตริง (Operations of String) 1. วิธีเรียกใช้ เมท็อดจากคลาส String เนื่องจากสตริ งเป็ นตัวแปรที่ถกสร้ างขึ ้นจากคลาส String ดังนันการดําเนินการส่วนใหญ่ของสตริ งจะต้ องกระ- ู ้ ทําภายใต้ เมท็อดของสตริงหรื อเมท็อดที่เกี่ยวข้ องกับสตริง โดยมีวิธีการเรี ยกใช้ เมท็อดดังนี ้ <ชื่อสตริ ง>.<ชื่อเมท็อด>([พารามิเตอร์ ]) เช่น s.length(), n.charAt(4) เป็ นต้ น 2. เมท็อดจากคลาส String 1) เมท็อดหาความยาวของสตริง (String Length) <สตริ ง>.length() จะคืนค่าจํานวนเต็ม ซึงเป็ นความยาวของสตริ ง ่ ตัวอย่างเช่น String name = "Suda Rukchula"; int len = name.length(); //len = 13 2) เมท็อดตัดช่ องว่ างทางซ้ ายและขวาของสตริงออกไป (String Trim) <สตริ ง>.trim() จะคืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตดช่องว่าง ั (Space) ทางซ้ ายและขวาของสตริงออกไป ตัวอย่างเช่น String m = " Hello JAVA "; String n = m.trim(); //n = "Hello JAVA" 3) เมท็อดแปลงสตริงให้ เป็ นอักษรตัวพิมพ์ ใหญ่ (String to Upper Case) <สตริ ง>.toUpperCase() จะคืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตวอักษร ั อังกฤษทุกตัวจะเปลี่ยนเป็ นตัวพิมพ์ใหญ่ ตัวอย่างเช่น String m = "Hello! JaVa 2010"; m = m.toUpperCase(); //m = "HELLO! JAVA 2010" 4) เมท็อดแปลงสตริงให้ เป็ นอักษรตัวพิมพ์ เล็ก (String to Lower Case) <สตริ ง>.toLowerCase() คืนค่าสตริงที่เหมือนกับสตริงเดิมแต่ตวอักษรอังกฤษ ั ทุกตัวจะเปลี่ยนเป็ นตัวพิมพ์เล็ก ตัวอย่างเช่น String m = "$Hello JAVA #2553"; m = m.toLowerCase(); //m = $hello java #2553 5) เมท็อดตัดสตริงย่ อย (Substring) เป็ นตําแหน่งเริ่มต้ นและตําแหน่งสิ ้นสุดของสตริงย่อย <สตริ ง>.substring(<เริ่ มต้ น>,<สิ ้นสุด>) คืนค่าสตริงที่เป็ นสตริงย่อยตังแต่ตําแหน่งเริ่มต้ น ้ ตัวอย่างเช่น จนถึงก่อนตําแหน่งสิ ้นสุด String name = "Chulalongkorn University"; String s1 = name.substring(9, 16); //s1 = "korn Un" String s2 = name.substring(0, 5) + "Thailand"; //s2 = "ChulaThailand" © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. String Operations - 05 Computer Programming using Java 55 <สตริ ง>.substring(<ตําแหน่ง>) คืนค่าสตริงที่เป็ นสตริงย่อยตังแต่ตําแหน่งที่ระบุ ้ จนถึงตําแหน่งสุดท้ าย ตัวอย่างเช่น String name = "Chulalongkorn University"; String s1 = name.substring(14); //s1 = "University" String s2 = name.substring(20); //s2 = "sity" 6) เมท็อดหาตัวอักขระ ณ ตําแหน่ งที่ระบุในสตริง (Character At) <สตริ ง>.charAt(<ตําแหน่ง>) คืนค่=อัตัขระในตําแหน่แหน่ง i า กวเลขระบุตํา งที่ระบุ ตัวอย่างเช่น String m = "Hello JAVA"; char ch1 = m.charAt(0); //ch1 = 'H' char ch2 = m.charAt(6); //ch2 = 'J' 7) เมท็อดหาตําแหน่ งที่พบเป็ นครั งแรกของสตริงย่ อยในสตริงหลัก (Index Of) ้ <สตริ ง>.indexOf(<สตริ ง>) คืนs าจํานวนเต็อย่เป็ นตําแหน่งของสตริงย่อยใน ค่ = สตริ งย่มที สตริงหลักที่พบเป็ นครังแรก ถ้ าไม่พบจะคืนค่า -1 ้ ตัวอย่างเช่น String m = "Hello JAVA"; int i = m.indexOf("l"); //i = 2 int j = m.indexOf("lo"); //j = 3 int k = m.indexOf("F"); //k = -1 8) เมท็อดหาตําแหน่ งที่พบเป็ นครั งสุดท้ ายของสตริงย่ อยในสตริงหลัก (Last Index Of) ้ <สตริ ง>.lastIndexOf(<สตริ ง>) คืนs าจํสตริ งย่อย่เป็ นตําแหน่งของสตริงย่อยในสตริง ค่= านวนเต็มที หลักที่พบเป็ นครังสุดท้ าย ถ้ าไม่พบจะคืนค่า -1 ้ ตัวอย่างเช่น String m = "Hello JAVA"; int i = m.lastIndexOf("A"); //i = 9 เริ่มนับที่ตําแหน่งที่ 0 (ซ้ ายไปขวา) int j = m.lastIndexOf("AV"); //j = 7 int k = m.lastIndexOf("b"); //k = -1 9) เมท็อดเปรียบเทียบการเท่ ากันทุกประการของสตริง <สตริ ง>.equals(<สตริ ง>) คืนค่าความจริ งที่เป็ น true ถ้ าสตริงเท่ากันทุกประ- การ หรื อ false ถ้ าสตริงไม่เท่ากันทุกประการ ตัวอย่างเช่น String s1 = "E-mail"; เปรี ยบเทียบสตริง s1 กับสตริง s2 String s2 = "e-mail"; boolean flag = s1.equals(s2); //flag = false 10) เมท็อดเปรียบเทียบการเท่ ากันของสตริงโดยไม่ สนใจตัวอักษรพิมพ์ ใหญ่ หรือพิมพ์ เล็ก <สตริ ง>.equalsIgnoreCase(<สตริ ง>) คืนค่าความจริ งที่เป็ น true ถ้ าสตริงเท่ากัน หรื อ false ถ้ าสตริ งไม่เท่ากัน โดยไม่สนใจตัวอักษร ตัวอย่างเช่น String s1 = "E-mail"; พิมพ์ใหญ่พิมพ์เล็ก String s2 = "e-mail"; boolean flag = s1.equalsIgnoreCase(s2); //flag = true © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 56 Computer Programming using Java 05 - String Operations 11) เมท็อดเปรียบต่ างลําดับของสตริง (ใช้ ค่า Unicode ในการเปรี ยบต่ าง) คืนค่า 0 เมื่อสตริงทังสองเท่ากัน ้ เปรี ยบเทียบรหัส <สตริ ง>.compareTo(<สตริ ง>) Unicode ของอัก- ตัวอย่างเช่น คืนค่าที่น้อยกว่า 0 เมื่อสตริ งตัวแรกมาก่อนสตริ งตัวหลัง ขระทีละตัวเริ่ม String s1 = "E-mail"; คืนค่าที่มากกว่า 0 เมื่อสตริงตัวแรกมาหลังสตริ งตัวหลัง จากซ้ ายไปขวา String s2 = "e-mail"; int flag = s1.compareTo(s2); //flag = -32 โจทย์ ข้อที่ 1 [ระดับง่ าย] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์ ้ ู พร้ อมทังระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (20 คะแนน) ้ ู String a = "I Love Java"; String b = "Chula "; ข้ อ ประเภทตัวแปร การประกาศและกําหนดค่ าตัวแปร ค่ าที่เก็บในตัวแปร 1. var = b.length(); 2. var = b.trim().length(); 3. var = "t".length(); 4. var = "ntu0000".length(); 5. var = b.toUpperCase() + b.toLowerCase(); 6. var = a.charAt(4); 7. var = a.indexOf("v"); 8. var = a.lastIndexOf("v"); 9. var = a.indexOf("ava"); 10. var = a.lastIndexOf("ava"); 11. var = a.indexOf("java"); 12. var = a.toLowerCase().indexOf("java"); 13. var = a.substring(6, a.length()).trim() + b; 14. var = a.substring(0, 4); 15. var = a.toLowerCase().substring(2); 16. var = a.substring(7).equals("java"); 17. var = "Java".equalsIgnoreCase("java"); 18. var = ".".equals(".".toUpperCase()); 19. var = "Jaba".compareTo("Java"); 20. var = "a".compareTo(a.charAt(8)); 3. เมท็อดอื่นๆ ที่เกี่ยวกับสตริง 1) การแปลงสตริงให้ เป็ นตัวเลขจํานวนเต็ม (String to Integer) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. String Operations - 05 Computer Programming using Java 57 Integer.parseInt(<สตริ ง>) คืนค่าจํานวนเต็มที่มาจากสตริงที่เป็ นตัวเลขจํานวน เต็ม (ห้ ามมีอกขระอื่นๆ ที่ไม่ใช่ตวเลขปะปน) ั ั ตัวอย่างเช่น String price = "500"; int p = Integer.parseInt(price); //p = 500 int len = p.length(); //Error 2) การแปลงสตริงให้ เป็ นตัวเลขจํานวนจริง (String to Double) Double.parseDouble(<สตริ ง>) คืนค่าจํานวนจริ งที่มาจากสตริงที่เป็ นตัวเลขจํานวน จริ งหรื อจํานวนเต็ม ตัวอย่างเช่น String price = "500.0"; double p = Double.parseDouble(price); //p = 500.0 3) การแปลงตัวเลขจํานวนเต็มให้ เป็ นสตริง (Integer to String) Integer.toString(<จํานวนเต็ม>) คืนค่าสตริงที่มีค่าเหมือนกับตัวเลขจํานวนเต็มที่ระบุ (หรื อใช้ วิธี <จํานวนเต็ม> + "") ตัวอย่างเช่น int price = 500; String p = Integer.toString(price); //p = "500" 4) การแปลงตัวเลขจํานวนจริงให้ เป็ นสตริง (Double to String) Double.toString(<จํานวนจริ ง>) คืนค่าสตริงที่มีค่าเหมือนกับตัวเลขจํานวนจริงที่ระบุ (หรื อใช้ วิธี <จํานวนจริง> + "") ตัวอย่างเช่น double price = 500.0; String p = Double.toString(price); //p = "500.0" โจทย์ ข้อที่ 2 [ระดับง่ าย] จงเติมเต็มคําสั่งการประกาศและกําหนดค่ าของตัวแปรต่ อไปนีให้ สมบรณ์ ้ ู พร้ อมทังระบุค่าที่เก็บอย่ ในตัวแปรแต่ ละข้ อ (10 คะแนน) ้ ู String a = "2000"; int n = 2000; String b = "1000.000"; double m = 1000.000; ข้ อ ประเภทตัวแปร การประกาศและกําหนดค่ าตัวแปร ค่ าที่เก็บในตัวแปร 1. var = Integer.parseInt(a); 2. var = Integer.parseInt(b); 3. var = Double.parseDouble(a); 4. var = Double.parseDouble(b); 5. var = Integer.toString(n); 6. var = Integer.toString(m); 7. var = Double.toString(n); 8. var = Double.toString(m); © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 58 Computer Programming using Java 05 - String Operations ข้ อ ประเภทตัวแปร การประกาศและกําหนดค่ าตัวแปร ค่ าที่เก็บในตัวแปร *9. var = Integer.toString(n) == (n + ""); 10. var = Integer.toString(n).equals(n + ""); โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนส่ วนหนึ่งของโปรแกรมจากข้ อกําหนดต่ อไปนี ้ (8 คะแนน) String p = "A1234567Java"; String r = "F6543210Jaba"; 1) เปลี่ยนค่ าในตัวแปร p และ r ให้ เป็ นตัวพิมพ์ ใหญ่ ทงหมดโดยห้ ามประกาศตัวแปรใหม่ (2 คะแนน) ั้ 2) ประกาศตัวแปรตรรกะ y เพื่อเก็บผลการเปรี ยบเทียบอักขระตัวที่ 5 ของตัวแปร p และ r โดยสมมุติ ให้ ตวแปรทังสองมีความยาวเกิน 5 อักขระ และห้ ามประกาศตัวแปรอื่นๆ เพิ่มเติม (2 คะแนน) ั ้ 3) ประกาศตัวแปรจํานวนจริ ง m เพื่อเก็บผลการเปลี่ยนสตริงตังแต่ ตัวที่ 2 จนถึงตัวที่ 6 ของตัวแปร p ้ ให้ เป็ นตัวเลขจํานวนจริง โดยห้ ามประกาศตัวแปรอื่นๆ เพิ่มเติม (2 คะแนน) โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บคํา (Words) จากแปนพิมพ์ เข้ ามา ู ้ ทีละคํา โดยให้ โปรแกรมวนรั บคําไปเรื่ อยๆ จนกว่ าผ้ ูใช้ จะพิมพ์ คาว่ า “Stop” (ไม่ สนใจอักษรพิมพ์ ใหญ่ ํ พิมพ์ เล็ก) จึงจะจบการวนซํา พร้ อมทังแสดงผลลัพธ์ ของคําทุกคําคั่นด้ วยช่ องว่ างออกทางจอภาพ ดังตัว- ้ ้ อย่ างต่ อไปนี ้ (10 คะแนน) Enter Word: I Enter Word: love Enter Word: JAVA Enter Word: very Enter Word: much Enter Word: sToP I love JAVA very much © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. String Operations - 05 Computer Programming using Java 59 โจทย์ ข้อที่ 5 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บประโยคจากแปนพิมพ์ หนึ่ง ู ้ ประโยค แล้ วทําการตัดช่ องว่ างทุกช่ องในประโยคนั นออกไป โดยให้ เหลือเพียงอักขณะอื่นๆ ที่ไม่ ใช่ ้ ช่ องว่ าง พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพดังตัวอย่ างต่ อไปนี ้ (10 คะแนน) ้ ี Enter Sentence: We love JAVA WeloveJAVA โจทย์ ข้อที่ 6 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บประโยคจากแปนพิมพ์ หนึ่ง ู ้ ประโยคแล้ วทําการกลับ (Reverse) ประโยคนันเสียใหม่ โดยเรี ยงอักขระทุกตัวจากหลังมาหน้ า (ขวาไป ้ ซ้ าย) พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพดังตัวอย่ างต่ อไปนี ้ (10 คะแนน) ้ ี Enter Sentence: We love JAVA AVAJ evol eW © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 60 Computer Programming using Java 05 - String Operations โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บชื่อ-นามสกุลที่แบ่ งด้ วยช่ อง ู ว่ างอย่ างน้ อยหนึ่งช่ องขึนไปเก็บไว้ ในตัวแปร fullName หลังจากนั นให้ ทําการแยกชื่อและนามสกุล ้ ้ ออกเป็ น 2 ส่ วนคือ ส่ วนแรก “ชื่ อ” ให้ เก็บไว้ ในตัวแปร firstName พร้ อมแสดงผลเป็ นตัวอักษรตัวพิมพ์ ใหญ่ และส่ วนที่สอง “นามสกุล” ให้ เก็บไว้ ในตัวแปร lastName พร้ อมแสดงผลเป็ นตัวอักษรตัวพิมพ์ เล็ก แต่ ถ้าการรั บชื่อ-นามสกุลจากแปนพิมพ์ ไม่ ถกต้ องจะแสดงข้ อความว่ า “Incorrect Name” (10 คะแนน) ้ ู Full Name: Wayne Rooney First Name : WAYNE Last Name : rooney Full Name: Wayne Rooney First Name : WAYNE Last Name : rooney Full Name: Rooney Incorrect Name โจทย์ ข้อที่ 8 [ระดับปานกลาง] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อตัดค่ า Title และ URL ในโค๊ ด เว็บเพจที่เขียนด้ วยภาษาเอชทีเอ็มแอล (HTML) ต่ อไปนี ้ (8 คะแนน) 1 <html> Title 2 <head> 3 <title>First Web Page</title> 4 </head> URL 5 <body> 6 <a href="http://www.javachula.co.cc">JavaChula</a> 7 </body> 8 </html> 1) ประกาศตัวแปร s1 เพื่อเก็บโค๊ ดเว็บเพจในบรรทัดที่ 3 และตัวแปร s2 เพื่อเก็บโค๊ ดเว็บเพจในบรร- ทัดที่ 6 (2 คะแนน) 2) ประกาศตัวแปร title เพื่อเก็บค่ า Title ที่ได้ จากการตัดโค๊ ดเว็บเพจในตัวแปร s1 (3 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. String Operations - 05 Computer Programming using Java 61 3) ประกาศตัวแปร url เพื่อเก็บค่ า URL ที่ได้ จากการตัดโค๊ ดเว็บเพจในตัวแปร s2 (3 คะแนน) โจทย์ ข้อที่ 9 [ระดับปานกลาง] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อตัดค่ าของวัน เดือน ปี จากตัว แปรสตริ ง d ที่รับค่ าวัน เดือน ปี จากแปนพิมพ์ ไว้ เรี ยบร้ อยแล้ วในรปแบบของ "1/12/2012" หรื อ ้ ู "13/6/2010" เป็ นต้ น พร้ อมทังแสดงผลลัพธ์ ของวัน เดือน ปี ออกทางจอภาพทีละบรรทัด (6 คะแนน) ้ โจทย์ ข้อที่ 10 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บข้ อความหนึ่งข้ อความจาก ู แปนพิมพ์ เพื่อนํามาตรวจสอบว่ าข้ อความดังกล่ าวเป็ นข้ อความแบบพาลินโดรม (Palindrome) หรื อไม่ ้ โดยพาลินโดรมคือข้ อความที่อ่านจากหน้ าไปหลังเหมือนกับอ่ านจากหลังไปหน้ า เช่ น "level", "2552", "race car", "I prefer pi" เป็ นต้ น ทังนีจะไม่ สนใจช่ องว่ างและตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กในการอ่ าน ้ ้ แต่ อย่ างใด (10 คะแนน) Text: I prefer pi It is palindrome Text: I prefer Java It is not palindrome © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 62 Computer Programming using Java 05 - String Operations โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาให้ สมบรณ์ เพื่อรั บข้ อความที่ประกอบไปด้ วยตัว- ู เลขและตัวอักษรปะปนกัน โดยไม่ จํากั ดความยาว จากนั นให้ ทําการตรวจสอบอักขระทีละตัวว่ าเป็ น ้ ตัวเลขหรื อตัวอักษร ถ้ าเป็ นตัวเลขจะนํามาหา [1] ค่ ามากที่สุด [2] ค่ าน้ อยที่สุด และ [3] ค่ าเฉลี่ย ถ้ าเป็ น ตัวอักษรจะนับจํานวนอักษรทังหมดที่พบ พร้ อมทังแสดงผลลัพธ์ ทัง 4 ค่ าออกทางจอภาพ (ห้ ามใช้ เมท็ ้ ้ ้ อดจากคลาส Math) (10 คะแนน) STRING: loveU2java37A1cu5 MAX VALUE: 7 import java.util.Scanner; MIN VALUE: 1 public class NumberAndCharacter { AVERAGE VALUE (18/5): 3.6 public static void main(String[] args) { TOTAL CHARACTER: 12 } //End of main } //End of class โจทย์ ข้อที่ 12 [ระดับยาก] ในการสร้ างโปรแกรมสนทนาผ่ านทางอินเตอร์ เน็ตของบริษัทลานเกียร์ จากัด ํ ชื่อว่ าโปรแกรม “เกรี ยนแชท” (Noob Chat) ซึ่งต้ องตรวจสอบข้ อความที่ผู้ใช้ พิมพ์ เข้ ามาสนทนากัน ว่ ามี คําหยาบ ซึ่งได้ แก่ “Shit” “Fuck” และ “Java” อย่ ูหรื อไม่ ซึ่งไม่ ว่าเป็ นตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กก็ สามารถตรวจสอบได้ ทุกกรณี ถ้ าตรวจสอบแล้ วไม่ มีคาหยาบปรากฎ ให้ แสดงข้ อความนันบนจอภาพ ถ้ า ํ ้ ไม่ เช่ นนันให้ แสดงข้ อความว่ ามีคาหยาบบนจอภาพ ดังตัวอย่ างต่ อไปนี ้ (15 คะแนน) ้ ํ import java.util.Scanner; public class NoobChat { Message: Hello F Hello F public static void main(String[] args) { © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. String Operations - 05 Computer Programming using Java 63 Message: I love Java Java is Bad Word. Message: fUCk you java Fuck Java are Bad Words. } //End of main } //End of class โจทย์ ข้อที่ 13 [ระดับเทพ] จากที่โปรแกรม “เกรี ยนแชท” (Noob Chat) ของบริ ษัทลานเกียร์ จากัดซึ่งเขียน ํ โดยนิสิตวิศวะฯ ปี 1 ได้ ถูกนําไปใช้ งานในระบบจริ งแล้ วปรากฎว่ า ยังมีบัก (Bug) เกิดขึนอีกมาก นั่นคือ ้ ไม่ สามารถรับข้ อความที่มากกว่ า 1 บรรทัดได้ และไม่ สามารถนับจํานวนคําหยาบที่ปรากฏในข้ อความได้ ดังนันบริษัทลานเกียร์ จงส่ งโปรแกรมดังกล่ าวกลับมายังนิสิตผ้ ูพัฒนา เพื่อปรับปรุ งให้ สมบรณ์ และเปลี่ยน ้ ึ ู ชื่อใหม่ เป็ นโปรแกรม “เกรี ยนเทพแชท” (God Noob Chat) โดยมีรายละเอียดดังนี ้ (20 คะแนน) 1) รับข้ อความจากแปนพิมพ์ ได้ ไม่ จากัดบรรทัด และจบเมื่อพิมพ์ จุด (Dot) ติดต่ อกัน 3 ครั ง ้ ํ ้ 2) ตรวจสอบข้ อความที่พมพ์ เข้ ามาว่ ามีคาหยาบอย่ ูหรือไม่ ซึ่งได้ แก่ “Shit” “Fuck” และ “Java” ไม่ ว่าเป็ น ิ ํ ตัวอักษรพิมพ์ ใหญ่ หรื อพิมพ์ เล็กก็สามารถตรวจสอบได้ ทุกกรณี และไม่ ว่าคําหยาบจะถกแบ่ งด้ วย ู ช่ องว่ างเช่ น “F U C K” ก็สามารถตรวจสอบได้ เช่ นกัน 3) นับจํานวนคําหยาบแต่ ละคําที่ปรากฎในข้ อความและแสดงจํานวนคําหยาบที่ตรวจพบบนจอภาพ 4) ถ้ าตรวจสอบแล้ วไม่ มีคาหยาบปรากฎให้ แสดงข้ อความนันบนจอภาพ ถ้ าไม่ เช่ นนันให้ แสดงข้ อความ ํ ้ ้ ว่ ามีคาหยาบบนจอภาพ ํ import java.util.Scanner; public class GodNoobChat { public static void main(String[] args) { © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 64 Computer Programming using Java 05 - String Operations Message: F U C K you JaVA JA V a ShiTTtt FU C King ... Count "Shit": 1 Count "Fuck": 2 Count "Java": 2 Shit Fuck Java are bad words. } //End of main } //End of class © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้