28
บบบบบ 5 บบบบบบบบบบ บบบบบบบบบบบ บบบบบ บบบบ บบบบบบบบบบบบบบบ 6/1

บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

Embed Size (px)

Citation preview

Page 1: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

บทท�� 5 ข้�อมูลชนิ�ดอาร์�เร์ย์�และ

สตร์�ง

ช��นิ มู�ธย์มูศึ�กษาปี"ท�� 61/

Page 2: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

อาร์�เร์ย์� (Array)

อาร์�เร์ย์� (Array) เปี$นิต�วแปีร์ช&ดให้�ส)าห้ร์�บเก*บข้�อมูลท��มู�ความูส�มูพั�นิธ�ก�นิ  โดย์จะเก*บไว�ในิช0�อเด�ย์วก�นิ สมูาช�กแต1ละต�วข้อง Array จะเร์�ย์กว1า Element ห้ร์0อ Cell ต�วเลข้ท��ใช�ร์ะบ&ต)าแห้นิ1งสมูาช�กข้อง Array เร์�ย์กว1า Index ห้ร์0อ Subscript

 

ตัวอย์�าง Array  X ท��มู� 5 Element

ซึ่��งจะเร์��มูต�นิต��งแต1 Index 0 ถึ�ง 4

Page 3: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

ตัวแปร์อาร์�เร์ย์�แบบ 1 มิ�ตั�อาร์�เร์ย์�ห้นิ��งมู�ต� มู�โคร์งสร์�างเท�ย์บเท1าเมูตร์�กซึ่�ข้นิาด nx1 การ์ปีร์ะกาศึต�วแปีร์อาร์�เร์ย์� จะใช�เคร์0�องห้มูาย์ [ ] ล�อมูค1าต�วเลข้จ)านิวนิเต*มู เพั0�อบอกจ)านิวนิห้นิ1วย์ข้�อมูลท��ต�องการ์ได�ในิร์ปี                   ชนิ�ดของตัวแปร์ ช��อตัวแปร์[จำ�านิวนิสมิาช�กที่��ตั�องการ์]

                      data_type variable_name [ number-of-elements ]         

 เช1นิ         int           a[5];

                               double    x,  y[10],  z[3];

Page 4: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

ตัวแปร์อาร์�เร์ย์�หลาย์ตัวอาร์�เร์ย์�ห้ลาย์มู�ต� (Multi-dimensional array) ค0อ อาร์�เร์ย์�ท��

มู�สมูาช�กเปี$นิข้�อมูลอาร์�เร์ย์� นิ��นิค0อ ในิห้นิ1วย์ข้�อมูลแต1ละห้นิ1วย์ข้องอาร์�เร์ย์� จะเปี$นิอาร์�เร์ย์�ย์1อย์ๆ ซึ่��งอาจจะก)าห้นิดซึ่�อนิลงไปีได�ห้ลาย์ช��นิ        การ์ก)าห้นิดอาร์�เร์ย์�ห้ลาย์มู�ต� จะกร์ะท)าในิร์ปีชนิ�ดต�วแปีร์  

ช0�อต�วแปีร์[จ)านิวนิสมูาช�ก][จ)านิวนิสมูาช�ก]….;การ์ปีร์ะกาศึอาร์�เร์ย์�ห้ลาย์ต�วท)าได�ด�งนิ��                int [] abc , xyz;                abc = new int[500];                xyz = new int[10];ห้ร์0อเข้�ย์นิร์วมูก�นิได�ด�งนิ��                int[] abc = new int[500], xyz = new int[10];

Page 5: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์ก�าหนิดค่�าเร์��มิตั�นิให�อาร์�เร์ย์� 1      

สามูาร์ถึปีร์ะกาศึต�วแปีร์ Array พัร์�อมูก�บก)าห้นิดค1าเร์��มูต�นิให้�ก�บสมูาช�ก Array ได�โดย์มู�ร์ปีแบบด�งนิ��                                                                                                                                

ชนิ�ดข้องต�วแปีร์อาร์�เร์ย์� ช0�ออาร์�เร์ย์�[จ)านิวนิข้�อมูล] = {ค1าคงท��,ค1าคงท��,…};

Page 6: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์เข�าถึ%งตัวแปร์อาร์�เร์ย์�    เมู0�อมู�การ์ปีร์ะกาศึอาร์�เร์ย์�แล�ว ค1าต)าแห้นิ1งห้มูาย์เลข้ล)าด�บข้�อมูลส)าห้ร์�บใช�เข้�าถึ�งต�วแปีร์ย์1อย์ต1างๆ ในิอาร์�เร์ย์� จะถึกก)าห้นิดโดย์อ�ตโนิมู�ต�           โดย์ห้ากก)าห้นิดอาร์�เร์ย์�ด�วย์ข้นิาด  n ข้�อมูล ห้นิ1วย์แร์ก จะมู�ค1าต)าแห้นิ1งล)าด�บเปี$นิ 0 ไปีจนิถึ�งข้�อมูลห้นิ1วย์ส&ดท�าย์จะมู�ค1าต)าแห้นิ1งล)าด�บเปี$นิ n-�             ถึ�าต�องการ์อ1านิห้ร์0อเข้�ย์นิข้�อมูลในิห้นิ1วย์ต1างๆ ข้องต�วแปีร์อาร์�เร์ย์� จะต�องอ�างช0�อต�วแปีร์ตามูด�วย์ค1าล)าด�บข้องห้นิ1วย์ในิกล&1มูข้�อมูลอาร์�เร์ย์� ล�อมูด�วย์เคร์0�องห้มูาย์ [ ] ซึ่��งเร์�ย์กว1า subscript (ห้ร์0อด�ชนิ� index)�             ค1าด�ชนิ� อาจอย์1ในิร์ปี ค1าคงท�� ข้องต�วแปีร์ นิ�พัจนิ� ห้ร์0อฟั6งก�ช�นิท��ให้�ค1าเปี$นิค1าจำ�านิวนิเตั&มิก*ได�  ( positive integer >=0 )�             ข้องเข้ตข้อง index ห้ร์0อ subscript มู�ค1าต��งแต1 0 ถึ�ง n-1 ( n ค0อข้นิาดข้องอาร์�เร์ย์�)

Page 7: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์ใช�ค่�าส�งวนิร์อบ for ในิการ์เข�าถึ%งค่�าในิอาร์�เร์ย์� เร์าสามูาร์ถึใช�ค)าส��งวนิร์อบ for ในิการ์วนิร์อบร์�บค1าท��ปี7อนิเข้�ามูาและใช�ในิการ์ค)านิวณโดย์การ์ใช�ต�วแปีร์ในิการ์วนิร์อบ และใช�ต�วแปีร์เด�ย์วก�นิ เพั0�อก)าห้นิดล)าด�บข้องข้�อมูลท��จะใช�ในิอาร์�เร์ย์�

int x,a[5];for (x=0; x<5; x++){ printf(“Enter value for a[%d]:”,x);

                 scanf(“%d”,&a[x]);}printf(“Show all values\n”);for (x=0; x<5; x++){ printf(“a[%d] = %d”, x, a[x]);  }

Page 8: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์ส�งผ่�านิอาร์�เร์ย์�ไปย์งฟั*งก�ชนิสามูาร์ถึแบ1งได�เปี$นิ 2 ล�กษณะ         1.การ์ส1งผ่1านิค1าอ�ล�เมูนิต�อาร์�เร์ย์�ให้�ก�บฟั6งก�ช�นิ เปี$นิการ์เร์�ย์กใช�ฟั6งก�ช�นิแบบ Call-by-value

   2. การ์ส1งอาร์�เร์ย์�ท&กอ�ล�เมูนิต�ให้�ก�บฟั6งก�ช�นิ เปี$นิการ์เร์�ย์กใช�ฟั6งก�ช�นิแบบ Call-by-reference

�             

Page 9: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์ส�งผ่�านิอาร์�เร์ย์�ไปย์งฟั*งก�ชนิ (ตั�อ)

 การ์เร์�ย์กใช�แบบ Call-by-value

 ใช�ว�ธ�การ์ส1งค1าข้องต�วแปีร์ (value) ให้�ก�บฟั6งก�ช�นิ โดย์ผ่1านิพัาร์ามู�เตอร์�� ไมู1สามูาร์ถึแก�ไข้ค1าข้องอาร์�ก�วเมูนิต�(ห้ร์0อพัาร์ามู�เตอร์�) ภาย์ในิฟั6งก�ช�นิได� = การ์แก�ไข้ค1าต1างๆในิฟั6งก�ช�นิ ไมู1มู�ผ่ลต1อต�วแปีร์ท��ส1งค1ามูา�             ใช�ก�บฟั6งก�ช�นิท��ร์ �บค1าเข้�าเปี$นิต�วแปีร์ธร์ร์มูดา (int, float, char,...)

�             เช1นิ  void triple(int x)        {  x=x*3;  printf(“x = %d”,x); }       ….

                      int x=5, y[2]={10,11};      triple(x);  triple(y[0]);

�             triple(x) ส�งค่�า 5 ให�กบฟั*งก�ชนิ ในิฟั*งก�ชนิ x เร์��มิตั�นิเป+นิ 5�             และถึ-กที่�าให�กลาย์เป+นิ 15 หลงจำบฟั*งก�ชนิ ค่�า x นิอกฟั*งก�ชนิ ไมิ�เปล��ย์นิแปลง�             triple(y[0]) ส�งค่�า 10 ให�กบฟั*งก�ชนิ ในิฟั*งก�ชนิ x เร์��มิตั�นิเป+นิ 10

�             และถึ-กที่�าให�กลาย์เป+นิ  30 หลงจำบฟั*งก�ชนิ ค่�า y[0] ย์งเหมิ�อนิเด�มิ

Page 10: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

   

  การ์เร์�ย์กใช�แบบ Call-by-reference

 ใช�ว�ธ�การ์ส1งค1า แอดเดร์ส (Address)***  ข้องต�วแปีร์ไปีให้�ฟั6งก�ช�นิ         ใช�ก�บฟั6งก�ช�นิท��ร์ �บค1าเข้�าเปี$นิอาร์�เร์ย์��             สามูาร์ถึแก�ไข้ค1าข้องอาร์�ก�วเมูนิต�ภาย์ในิฟั6งก�ช�นิได� = การ์แก�ไข้ค1าต�วแปีร์อาร์�เร์ย์� ภาย์ในิฟั6งก�ช�นิ มู�ผ่ลการ์เปีล��ย์นิแปีลงต1อต�วแปีร์ท��ส1งค1ามูาเพัร์าะ การ์มู�การ์จ�ดการ์ค1าข้องห้นิ1วย์ความูจ)าในิต)าแห้นิ1งเด�ย์วก�นิ�             ***แอดเดร์ส (Address) ค0อ ค1าท��ใช�อ�างถึ�งต�วข้�อมูลภาย์ในิห้นิ1วย์ความูจ)า เห้มู0อนิก�บห้มูาย์เลข้บ�านิเลข้ท��**

การ์ส�งผ่�านิอาร์�เร์ย์�ไปย์งฟั*งก�ชนิ (ตั�อ)

Page 11: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

   ฟั*งก�ชนิที่��มิ�การ์ร์บค่�าเข�าเป+นิอาร์�เร์ย์�

     ฟั6งก�ช�นิสามูาร์ถึท��จะร์�บค1าเข้�าเปี$นิอาร์�เร์ย์�ได� ซึ่��งร์ปีแบบข้องการ์เข้�ย์นิต�นิแบบข้องฟั6งก�ช�นิเปี$นิด�งนิ���              ชนิ�ดข�อมิ-ล ช��อฟั*งก�ชนิ(ชนิ�ดข�อมิ-ล ช��อตัวแปร์[ขนิาดอาร์�เร์ย์�]);ในิกร์ณ�ฟั6งก�ช�นิมู�การ์ร์�บค1าเข้�าเปี$นิอาร์�เร์ย์� 1 มู�ต� อาจจะไมู1ต�องก)าห้นิดข้นิาดข้องอาร์�เร์ย์�ก*ได��             ต�วอย์1างเช1นิ�                                             int sum_arr(int num[10]);

�                                             void print_arr(int a[5]);

�                                             float average(int num[]);

Page 12: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

    การ์ส�งผ่�านิค่�าอ�ล�เมินิตั�อาร์�เร์ย์�ให�กบฟั*งก�ชนิห้ากฟั6งก�ช�นิ my_func มู�ต�นิแบบข้องฟั6งก�ช�นิด�งนิ��                    void my_func(int x);

           และในิ main ได�มู�การ์ปีร์ะกาศึต�วแปีร์อาร์�เร์ย์�ช0�อว1า num

                       int num[10];

�             การ์ส1งอ�ล�เมูนิต�ท�� 0 ข้องอาร์�เร์ย์� num ไปีเปี$นิอาร์�ก�วเมูนิต�ข้องฟั6งก�ช�นิ my_func สามูาร์ถึเข้�ย์นิได�ด�งนิ���                             my_func(num[0]);

Page 13: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

      การ์ส�งอาร์�เร์ย์�ที่.กอ�ล�เมินิตั�ของอาร์�เร์ย์�ให�กบฟั*งก�ชนิ  การ์ส1งอาร์�เร์ย์�ในิกร์ณ�นิ�� ใช�แค1ช0�อต�วแปีร์อาร์�เร์ย์�เท1านิ��นิ เช1นิ ห้ากในิ main มู�การ์ปีร์ะกาศึอาร์�เร์ย์�ด�งนิ��                         int num[10];

  และฟั6งก�ช�นิ print_arr มู�ต�นิแบบฟั6งก�ช�นิด�งนิ��                    void print_arr(int a[10]);

�การ์ส1งอาร์�เร์ย์� num ท&กอ�ล�เมูนิต�ไปีให้�ฟั6งก�ช�นิ print_arr สามูาร์ถึเข้�ย์นิได�ด�งนิ��                           print_arr(num);

Page 14: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

 อาร์�เร์ย์�ของออบเจำ&กตั�  อาร์�เร์ย์�สามูาร์ถึเก*บ reference ข้อง Object ได� โดย์ก)าห้นิดให้�อาเร์ย์� เปี$นิ Class นิ��นิ ๆ  ในิตอนิปีร์ะกาศึอาเร์ย์� มู�ร์ปีแบบด�งนิ���                                                          className [] arrayName = new className[size];�             เช1นิ                    Student [] studentList = new Student[10];�             �             Student [] studentList = new Student[3];�             studentList[0] = new Student();�             studentList[1] = new Student();�             studentList[2] = new Student();�            

Page 15: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

       อาร์�เร์ย์�แบบ 2 มิ�ตั�โดย์สร์&ปี ส)าห้ร์�บอาร์�เร์ย์�สองมู�ต� เมู0�ออ�างช0�ออาร์�เร์ย์� จะห้มูาย์ถึ�งต)าแห้นิ1งเร์��มูต�นิข้องอาร์�เร์ย์�ท��งห้มูด (อาร์�เร์ย์� 2 มู�ต�)          เมู0�ออ�างช0�ออาร์�เร์ย์�พัร์�อมูสมูาช�กห้นิ��งอ�นิด�บ จะห้มูาย์ถึ�งต)าแห้นิ1งเร์��มูต�นิข้องอาร์�เร์ย์�ย์1อย์ภาย์ในิ  (อาร์�เร์ย์� 1 มู�ต�)             เมู0�ออ�างช0�ออาร์�เร์ย์�พัร์�อมูค1าสองอ�นิด�บ จะห้มูาย์ถึ�ง ข้�อมูลภาย์ในิอาร์�เร์ย์� �             การ์ปร์ะกาศตัวแปร์อาร์�เร์ย์� 2 มิ�ตั��             int val[3][4];

�             double prices[10][5];

�             char code[6][4];

Page 16: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

          การ์ใช�ค่�าส�ง for ในิการ์เข�าถึ%งอาร์�เร์ย์� 2 มิ�ตั� ใช�ลปี for 2 ช0นิ โดย์ลปีช��นินิอกวนิร์อบตามูจ)านิวนิแถึว ส1วนิลปีช��นิในิวนิร์อบตามูจ)านิวนิห้ล�ก            ต�องมู�ต�วนิ�บ 2 ต�ว ค0อ ต�วนิ�บแถึวและต�วนิ�บห้ล�ก            ต�วอย์1างเช1นิ           int i,j,x[2][3];

                         for(i=0;i<2;i++)

                          for(j=0;j<3;j++)

                         x[i][j] = i+j;

Page 17: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

�    การ์ให�ค่�าเร์��มิตั�นิ (Array Initialization)

   เร์าจะใช�กล&1มูค1าคงท��ท��มู�สมูาช�กเปี$นิกล&1มูค1าคงท��ย์1อย์ ซึ่��งเปี$นิชนิ�ดเด�ย์ว ก�นิและมู�ข้นิาดเท1าก�นิ ร์วมูถึ�งสอดคล�องก�บชนิ�ดข้องอาร์�เร์ย์�ด�วย์  โดย์ใช�เคร์0�องห้มูาย์ {} ห้ร์0อ  , ในิการ์แบ1งแย์กแต1ละแถึว

Page 18: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

Class ArrayList

ในิภาษา Java มู�กล&1มูคลาสท��เร์�ย์กว1า คอลเล*กช��นิ (Collection) ซึ่��งออบเจ*กต�จากคลาสนิ��สามูาร์ถึใช�สะสมูออบเจ*กต�ต1าง ๆ ไว�ได�  เช1นิ Class ArrayList ด�กว1า Array ท��สามูาร์ถึเพั��มูสมูาช�กได� โดย์ไมู1ต�องปีร์ะกาศึไว�ล1วงห้นิ�า  การ์ใช� Class ArrayList จะต�อง import  java.util.ArrayList

Page 19: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

Method ที่��ส�าค่ญของ ArrayList

    -add(int index,Object obj)   ใช�ใส1ออบเจ*กต�ลงในิอาร์�เร์ย์�ท��ต)าแห้นิ1ง index

      -remove(int index)  นิ)าออบเจ*กต�ต)าแห้นิ1ง index ออกจากอาร์�เร์ย์��              -get(int index)  ค0นิค1าออบเจ*กต�ในิต)าแห้นิ1ง index

�            -indexof(Object obj)  ค0นิค1า index ข้องออบเจ*กต�ท��ร์ะบ&�            -size ส)าห้ร์�บห้าข้นิาดข้อง ArrayList

Page 20: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

String

String ค0อข้�อความู ห้ร์0อ สาย์ข้องอ�กข้ร์ะ ในิภาษา C++ ไมู1มู�ต�วแปีร์ ปีร์ะเภท String แต1จะมู�ต�วแปีร์ปีร์ะเภท char ให้�ใช�แทนิ ซึ่��งต�วแปีร์ ปีร์ะเภทchar จะสามูาร์ถึเก*บอ�กข้ร์ะได� 1 อ�กข้ร์ะ เท1านิ��นิถึ�าห้ากเร์าอย์ากให้�ต�วแปีร์ char สามูาร์ถึเก*บข้�อความูได�เร์าก*สามูาร์ถึ ท)าให้�ต�วแปีร์ char เปี$นิ array ได� char Name[10];

Page 21: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์เปร์�ย์บเที่�ย์บ String

ใช�เคร์0�องห้มูาย์ ==

เปี$นิการ์เปีร์�ย์บเท�ย์บว1า String 2 ต�วเปี$นิ Object เด�ย์วก�นิห้ร์0อไมู1 โดย์จะเปีร์�ย์บเท�ย์บค1าอ�างอ�งห้ร์0อท��อย์1ในิห้นิ1วย์ความูจ)าข้องต�วแปีร์ท��งสอง ไมู1ได�เปี$นิการ์เปีร์�ย์บเท�ย์บถึ�งข้�อมูลท�� String ท��ง 2 ต�วว1าเก*บข้�อมูลเด�ย์วก�นิห้ร์0อไมู1ร์-ปแบบค่�าส�ง      String1 == String2;

equals() method

เปี$นิการ์เปีร์�ย์บเท�ย์บค1าในิ String Object ท��ง 2 ต�วเปี$นิค1าเด�ย์วก�นิห้ร์0อไมู1 โดย์ท��จะให้�ค1าเปี$นิจร์�ง (True) ก*ต1อเมู0�อต�วอ�กษร์ท&กต�วในิ String ท��ง 2 ค1าจะต�องเห้มู0อนิก�นิห้มูด โดย์สนิใจต�วอ�กษร์พั�มูพั�เล*กและพั�มูพั�ให้ญ่1ด�วย์ ห้ากต1างก�นิก*จะให้�ค1าเปี$นิเท*จ (False) 

Page 22: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์เปร์�ย์บเที่�ย์บ String (ตั�อ)

ร์-ปแบบค่�าส�งString1.equals(String2);

ห้ากไมู1สนิว1าต�วอ�กษร์ท��อย์1ภาย์ในิ String จะเปี$นิต�วเล*กห้ร์0อต�วให้ญ่1 ถึ�าต�องการ์ตร์วจสอบเพั�ย์งการ์เห้มู0อนิทางร์ปีร์1างก*ใช�method equalsIgnoreCase()compareTo methodการ์เปีร์�ย์บเท�ย์บความูไมู1เท1าก�นิข้อง String โดย์จะให้�ค1าท��ได�จากการ์เปีร์�ย์บเท�ย์บแบ1งเปี$นิ 3 ค1าค0อ- เปี$นิลบ (-) ถึ�าค1าแร์กนิ�อย์กว1าค1าท��สอง- เปี$นิบวก (+) ถึ�าค1าแร์กมูากกว1าค1าท��สอง- เปี$นิศึนิย์� (0) ถึ�าค1าเท1าก�นิ

Page 23: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

การ์เปร์�ย์บเที่�ย์บ String (ตั�อ)

ร์-ปแบบค่�าส�งString1.compareTo(String2);ค่ลาส StringBuffer�             คลาส StringBuffer จะมู�ล�กษณะคล�าย์ก�บคลาส String เพั�ย์งแต1เปี$นิต�วแปีร์สตร์�งท��มู�การ์แก�ไข้ค1าแบบถึาวร์ คอนิสตร์�กเตอร์�ข้องคลาส StringBuffer ท��นิ1าสนิใจมู�ด�งต1อไปีนิ��  StringBuffer(String s)  เก*บสตร์�ง s ไว�ในิต�วแปีร์ StringBuffer  StringBuffer() เก*บข้�อความูว1างเปีล1าไว�ในิต�วแปีร์ StringBuffer และมู�ข้นิาด 16 byte เห้ต&ท��ต�วแปีร์ StringBuffer มู�ข้นิาดปีกต� 16 และจะเพั��มูข้นิาดเมู0�อเก*บข้�อความูลงไปี เปี$นิเพัร์าะถึ�ามู�การ์เปีล��ย์นิข้�อความูท��เก*บภาย์ห้ล�ง ข้�อความูให้มู1อาจมู�ข้นิาดไมู1เท1าเด�มู ด�งนิ��นิจาวาจ�งว1างไว�อ�ก 16 ท��ว1างเพั0�อจะได�ไมู1ต�องก�นิท��ในิห้นิ1วย์ความูจ)าเพั��มูเต�มูอ�ก ในิกร์ณ�ท��ข้�อความูให้มู1มู�ข้นิาดให้ญ่1กว1าเด�มูไมู1เก�นิ 16 เพัร์าะการ์ก�นิท��ในิห้นิ1วย์ความูจ)าเพั��มูเต�มูภาย์ห้ล�งเปี$นิเร์0�องย์&1งย์ากและอาจท)าให้�ปีร์ะส�ทธ�ภาพัในิการ์เข้�าถึ�งลดลง  StringBuffer(int length) เก*บข้�อความูว1างเปีล1าไว�ในิต�วแปีร์ StringBuffer และมู�ข้นิาดเท1าก�บ length

Page 24: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

เมิธอดที่��นิ�าสนิใจำส�วนิหนิ%�งของค่ลาส StringBuffer

StringBuffer append(String s) StringBuffer append(char c) StringBuffer append(chra[] c, int offset, int len) StringBuffer append(booleab b) StringBuffer append(int i) StringBuffer append(long l) StringBuffer append(float f) StringBuffer append(double d)

Page 25: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

 เมิธอดที่��นิ�าสนิใจำส�วนิหนิ%�งของค่ลาส StringBuffer (ตั�อ)

เมูธอดนิ��เปี$นิโอเวอร์�โห้ลดเมูธอด ท)าห้นิ�าท��เพั��มูข้�อความูในิวงเล*บเข้�าไปีต1อท�าย์ข้�อความูท��มู�อย์1แล�วในิ StringBuffer ถึ�ามู�การ์เปีล��ย์นิแปีลง StringBuffer ผ่1านิเมูธอดข้�อความูจะถึกเปีล��ย์นิแบบถึาวร์StringBuffer insert(int offset, String s)StringBuffer insert(int offset, char c)StringBuffer insert(int offset, char[] c)StringBuffer insert(int offset, boolean b)StringBuffer insert(int offset, int i)StringBuffer insert(int offset, long l)StringBuffer insert(int offset, float f)StringBuffer insert(int offset, double b)

Page 26: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

เมิธอดที่��นิ�าสนิใจำส�วนิหนิ%�งของค่ลาส StringBuffer (ตั�อ)

เมูธอดนิ��เปี$นิโอเวอร์�โห้ลดเมูธอด ท)าห้นิ�าท��แทร์กข้�อความูในิวงเล*บเข้�าไปีในิต)าแห้นิ1งท��เท1าก�บ offsetStringBuffer deleteCharAt(int index) เมูธอดนิ��จะท)าห้นิ�าท��ลบต�วอ�กษร์ในิต)าแห้นิ1ง index ออกStringBuffer delete(int start, int end) เมูธอดนิ��จะท)าห้นิ�าท��ลบต�วอ�กษร์จากต)าแห้นิ1ง start ถึ�ง end ออกStringBuffer revers()เมูธอดนิ��จะท)าห้นิ�าท��กล�บต�วต�วอ�กษร์จากห้ล�งมูาห้นิ�าchar charAt(int index) ล1งค1าต�วอ�กษร์ในิต)าแห้นิ1ง index กล�บchar setCharAt(int index, char ch)  เปีล��ย์นิต�วอ�กษร์ในิต)าแห้นิ1ง index ด�วย์ chtoString()ส1งค1าข้องข้�อความูออกมูาในิร์ปีต�วแปีร์สตร์�ง

Page 27: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

ข�อแตักตั�างร์ะหว�าง StringBuffer และ String

  ข้�อท��แตกต1างร์ะห้ว1าง StringBuffer และ String ค0อข้นิาดข้อง StringBuffer ไมู1จ)าเปี$นิต�องเท1าก�บข้นิาดข้องข้�อความูและสามูาร์ถึเพั��มูห้ร์0อลดข้นิาดได� เร์าสามูาร์ถึตร์วจสอบข้นิาดข้อง StringBuffer ได�โดย์ใช�เมูธอด int capacity()ซึ่��งจะค0นิค1าปี6จจ&บ�นิข้อง StringBuffer ด�งต�วอย์1างต1อไปีนิ���              จากโค�ดข้�างบนิในิบร์ร์ท�ดท�� (1) เร์าสร์�างต�วแปีร์ s1 โดย์ไมู1เก*บค1าอะไร์เลย์ ผ่ลท��ได�ค0อข้นิาดข้องข้�อความูเท1าก�บ 0 แต1ข้นิาดข้องต�วมู�นิเองจร์�งเปี$นิ 16 ซึ่��งเปี$นิค1าปีกต� ในิบร์ร์ท�ดท�� (2) เร์าสร์�างต�วแปีร์ s2 โดย์ให้�เก*บค1า Hello ผ่ลท��ได�ค0อข้นิาดข้�อความูเปี$นิ 5 แต1ข้นิาดข้องต�วมู�นิเองเท1าก�บค1าปีกต�บวกด�วย์ความูย์าวข้องข้�อความูท��ส� �งให้�มู�นิเก*บซึ่��งเท1าก�บ 21 นิ��นิเอง ในิบร์ร์ท�ดท�� (3) เร์าพัย์าย์ามูสร์�างต�วแปีร์ s3 ซึ่��งเปี$นิว�ธ�การ์ท��ใช�ไมู1ได�ก�บต�วแปีร์ StringBuffer�              เห้ต&ท��ต�วแปีร์ StringBuffer มู�ข้นิาดเท1าก�บ 16 และจะเพั��มูข้นิาดเมู0�อเก*บข้�อความูลงไปี เปี$นิเพัร์าะถึ�ามู�การ์เปีล��ย์นิแปีลงข้�อความูท��เก*บภาย์ห้ล�ง ข้�อความูห้ใมู1อาจมู�ข้นิาดไมู1เท1าเด�มู จาวาจ�งเผ่0�อท��ว1างไว�อ�ก 16 ท��ว1าง เพั0�อจะได�ไมู1ต�องก�นิพั0�นิท��ในิห้นิ1วย์ความูจ)าเพั��มูเต�มูอ�กในิกร์ณ�ท��ข้�อความูให้มู1มู�ข้นิาดให้ญ่1กว1าเด�มูไมู1เก�นิ 16 เพัร์าะการ์ก�นิท��ในิห้นิ1วย์ความูจ)าเพั��มูเต�มูภาย์ห้ล�งท)าได�ย์าก เนิ0�องจากพั0�นิท��ในิห้นิ1วย์ความูจ)าท�เพั��มูข้��นิอาจไมู1อย์1ต�ดก�บพั0�นิท��เด�มูท)าให้�ปีร์ะส�ทธ�ภาพัในิการ์เข้�าถึ�งลดลง          � 

Page 28: บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง

ผ่�จ�ดท)า

1.นิางสาวอร์ปีร์�ย์า สงวนิศึ�กด�< เลข้ท�� 232.นิางสาวมูานิ�ดา คร์&ธนิาค เลข้ท�� 263.นิางสาววาส�นิ� ล�ดดาก&ล เลข้ท�� 274.นิางสาวปี6ทมูา พัร์ห้มูชนิะ เลข้ท�� 305.นิางสาวอร์ฤท�ย์ อ�นิทนิ�ล เลข้ท0� 326.นิางสาวมูนิ�ชญ่า วส&อนิ�นิต�ก&ล เลข้ท�� 38

ช��นิมู�ธย์มูศึ�กษาปี"ท�� 61