String & Array
Modern Programming Languages
3 String & Array 3.1 สตริง (String)
ขอมูลแบบสตริงใชในการเก็บขอมูลที่เปนชุดของตัวอักษร สตริงในภาษาจาวาสรางขึ้นจากคลาสที่ชื่อวา String โดยขอความที่เปนสตริงจะถูกครอบดวยเครื่องหมาย “ ” (double quote) •
การประกาศตัวแปรอางอิงสําหรับคลาส String ทําไดดังนี้ //ประกาศตัวแปร strName เปนตัวแปรอางอิงแบบ String แตยังไมมีการสรางออบเจกต String strName; //ประกาศตัวแปร strName เปนตัวแปรอางอิงแบบ String โดย strName เปนออบเจกตที่เก็บ
ขอมูลตัวอักษรวางๆไว String strName = new String(); //การประกาศตัวแปรสามารถกําหนดคาลงไปในตัวแปร String ไดเลย โดย strName เปนออบ
เจกตที่เก็บขอมูล “John” String strName = “John”
หรือ String strName = new String(“John”); •
การสงผานขอมูลใหกับตัวแปรอางอิงแบบ String ทําไดดังนี้ String strHello; strHello = “Hello, Java”;
ขอสังเกต ทําไม!!! ตัวแปรแบบ String ตองสรางเปนคลาส การสรางใหเปนคลาสนั้น ทําใหสามารถสรางเมธอดขึ้นมาชวยในการจัดการตัวแปร String ไดงาย เชน การหาความยาวของ String สามารถเรียกใชเมธอด length() ไดเลย 3.1.1
การเชื่อมตอสตริง (Concatenation)
การเชื่อมตอสตริงทําไดโดยใชเครื่องหมาย “+” ในการเชื่อมตอสตริงในแตละขอความที่ตองการ ตัวอยาง
ผลลัพธที่ได : Hello World
[email protected]
1/31
String & Array
3.1.2
Modern Programming Languages
การหาความยาวของสตริง (Length)
ความยาวของขอมูลที่เก็บในตัวแปรอางอิงแบบ String ทําไดโดยเรียกใชเมธอด length public int length()
โดยเมธอดจะคืนคาเปนจํานวนเต็มเทากับความยาวของ String ตัวอยาง
ผลลัพธที่ได : Hello length : 5 @ @
จากตัวอยางขางตน strHello เปนตัวแปรอางอิงแบบ String ที่เก็บขอความ “Hello” ไว อยาลืมวา strHello เปนออบเจกตของ String ดังนั้นเมื่อตองการหาความยาวของขอมูลใน strHello จึง เรียกใชงานเมธอด length ไดดังนี้ strHello.length()
ซึ่งจะคืนคาความยาวของขอมูลกลับมา 3.1.3
การดึงขอมูลบางสวนของสตริง (Substring)
การดึงเอาขอมูลบางสวนของสตริงมาใชงาน ทําไดโดยเรียกใชเมธอด substring public String substring(int beginIndex) ทําการดึงตัวอักษรที่อยูตั้งแตตําแหนง beginIndex และจะเก็บตัวอักษรจนถึงตําแหนงสุดทายของ
ขอความ แลวคืนคาเปนสตริงที่เก็บขอมูลที่ดึงออกมาได public String substring(int beginIndex, int endIndex) ทํ า การดึ ง ตั ว อั ก ษรที่ อ ยู ตั้ ง แต ตํ า แหน ง beginIndex และจะเก็ บ ตั ว อั ก ษรจนถึ ง ตํ า แหน ง ที่ endIndex-1 แลวคืนคาเปนสตริงที่เก็บขอมูลที่ดึงออกมาได
ตัวอยาง
ผลลัพธที่ได : Modern Programming length : 18 Programming Mode 0 M
1 o
2 d
3 e
4 r
strSubject.substring(0,4)
[email protected]
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g strSubject.substring(7)
2/31
String & Array
3.1.4
Modern Programming Languages
การดึงตัวอักษรจากตําแหนงที่ตองการ
การดึงคาตัวอักษรจากตําแหนงที่ตองการออกมาใชงาน ทําไดโดยเรียกใชเมธอด charAt public char charAt(int index)
รับคาตัวเลขจํานวนเต็มแลวคืนคาเปนตัวอักษร ณ ตําแหนงของตัวแปร index ตัวอยาง
ผลลัพธที่ได : P 0 M
3.1.5
1 o
2 d
3 e
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
การหาตําแหนงของตัวอักษรหรือขอความในขอมูลสตริง
การหาตําแหนงของตัวอักษรหรือขอความในขอมูลสตริง ทําไดโดยเรียกใชเมธอด indexOf public int indexOf(int ch)
คนหาตําแหนงของตัวอักษร ch ในขอมูลสตริง แลวคืนคาตําแหนง ที่หาเจอเปนตัวแรก ถาไมพบจะคืนคา -1 public int indexOf(String str)
คนหาตําแหนงของตัวแปรขอมูล str ในขอมูลสตริง แลวคืนคาที่หาเจอเปนตําแหนงแรก ถาไมพบจะคืน คา -1 public int indexOf(int ch, int fromIndex) ทําการหาตําแหนงตัวอักษร ch ในขอมูลสตริง โดยเริ่มตนหา ณ ตําแหนง fromIndex ที่กําหนด แลวคืน
คาตําแหนงของตัวอักษรที่หาเจอเปนตัวแรก ถาไมพบจะคืนคา -1 public int indexOf(String str, int fromIndex) ทําการหาตําแหนงของขอมูลตัวแปร str ในขอมูลสตริง
โดยเริ่มตนหา ณ ตําแหนง fromIndex กําหนด แลวคืนคาที่หาเจอเปนตําแหนงแรก ถาไมพบจะคืนคา -1 ตัวอยาง
ผลลัพธที่ได : 4 8 7 -1
[email protected]
3/31
ที่
String & Array @
Modern Programming Languages
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 2 strSubject.indexOf('r') ทําการคนหาจากตําแหนงแรกคือ ตําแหนงที่ 0 ไปจน เจอตัวอักษร ‘r’ ณ ตําแหนงที่ 4 0 M
1 o o
0 M
0 M
2 d
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
3 e
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
บรรทัดที่ 4 strSubject.indexOf(“Program”) ทําการคนหาจากตําแหนงที่ 0 ไปจนเจอคํา วา “Program” ณ ตําแหนงที่ 7
1 o o
3 e
บรรทัดที่ 3 strSubject.indexOf('r',5) ทําการคนหาจากตําแหนงที่ 5 ไปจนเจอตัวอักษร ‘r’ ณ ตําแหนงที่ 8
1 o o
0 M
2 d
2 d
3 e
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
บรรทัดที่ 5 strSubject.indexOf(“Program”,8) ทําการคนหาจากตําแหนงที่ 8 ไปจนถึง ตําแหนงสุดทายแตไมเจอคําวา “Program” ไดคา -1
1 o
2 d
3 e
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
public int lastIndexOf(String str) public int lastIndexOf(int ch) public int lastIndexOf(String str, int fromIndex) public int lastIndexOf(int ch, int fromIndex) การทํางานคลายเมธอด indexOf โดยจะเริ่มตนหาจากตําแหนงสุดทายของขอความ
ตัวอยาง
ผลลัพธที่ได : 11 4 @
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 2 strSubject.lastIndexOf('r') ทําการคนหาจากตําแหนงสุดทายคือ ตําแหนงที่ 17 ไปจนเจอตัวอักษร ‘r’ ณ ตําแหนงที่ 11 0 M
1 o
2 d
3 e
[email protected]
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
4/31
String & Array
o
0 M
3.1.6
1 o
Modern Programming Languages
บรรทัดที่ 3 strSubject.lastIndexOf('r',7) ทําการคนหาจากตําแหนง 7 ไปจนเจอตัวอักษร ‘r’ ณ ตําแหนงที่ 4 2 d
3 e
4 r
5 n
6
7 P
8 r
9 o
10 11 12 13 14 15 16 17 g r a m m i n g
การแทนตัวอักษรในสตริง
การแทนตัวอักษรในสตริง ทําไดโดยเรียกใชเมธอด replace public String replace(char oldChar, char newChar) ทําการแปลงตัวอักษร oldChar ทุกตัวเปน newChar
ตัวอยาง
ผลลัพธที่ได : MEdern PrEgramming Modern Programming @
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 2 strSubject.replace('o','E') ทําการคนหาตัวอักษร ‘o’ แลวแทนที่ดวย ตัวอักษร ‘E’ 0 M M
1 o E o
3.1.7
2 d d
3 e e
4 r r
5 n n
6
7 P P
8 r r
9 o E
10 11 12 13 14 15 16 17 g r a m m i n g g r a m m i n g
บรรทัดที่ 3 strSubject.replace('c','E') ทําการคนหาตัวอักษร ‘c’ แลวแทนที่ดวยตัวอักษร ‘E’ จากการคนหาไมเจออักษรที่ตองการ จึงไมเกิดการเปลี่ยนแปลง
การแปลงสตริงใหเปนอักษรตัวพิมพใหญ-เล็ก
การแปลงสตริงใหเปนอักษรตัวพิมพเล็ก-ใหญ ทําไดโดยเรียกใชเมธอด toUpperCase(แปลงเปนตัวพิมพ ใหญ) และ toLowerCase(แปลงเปนตัวพิมพเล็ก) public String toUpperCase()
คืนคาขอความเดิมแตเปลี่ยนใหเปนตัวพิมพใหญหมด public String toLowerCase()
คืนคาขอความเดิมแตเปลี่ยนใหเปนตัวพิมพเล็กหมด
[email protected]
5/31
String & Array
Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได : MODERN PROGRAMMING modern programming
3.1.8
การเปรียบเทียบสตริงดวยเมธอด equals และ eqaulsIgnoreCase
ใชในการเปรียบเทียบขอมูลในสตริง มีรูปแบบดังนี้ สตริงตัวแรกที่ตองการเปรียบเทียบ. equals (สตริงตัวที่สองที่ตองการเปรียบเทียบ) public boolean equals(String str) รับคา str เขามาตรวจสอบวาขอความเหมือนสตริงตัวแรกหรือไม public boolean equalsIgnoreCase(String str) รับคา str เขามาตรวจสอบวาขอความเหมือนสตริงตัวแรก
ถาเหมือนจะคืนคา true
จะตรวจสอบโดยไมสนวาเปนตัวพิมพ
ใหญหรือเล็ก ถาเหมือนจะคืนคา true ตัวอยาง
ผลลัพธที่ได :
[email protected]
6/31
String & Array @
Modern Programming Languages
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 2 ทําการกําหนดคาใหกับ str1=“Test” คือ str1 เก็บขอความ “Test” o บรรทัดที่ 3 ทําการกําหนดให str2=str1 คือ str2 ถูกชี้ไปยังตําแหนงที่ str1 อยู 0xcac68 str1
str2
o
o
Test
str1= “Test”;
str2 = str1;
บรรทัดที่ 6 มีการเปรียบเทียบวา str1= =str2 หรือไม อยาลืมวา str1 และ str2 เปนตัวแปร อางอิงของคลาส String การใช = = ในการเปรียบเทียบ จะเปนการตรวจสอบตําแหนงของออบ เจกตนั้น วาอยูตําแหนงเดียวกันหรือไม ผลที่ไดเปน true เพราะ str1 และ str2 อยูตําแหนง เดียวกัน บรรทัดที่ 8 เปนการสรางออบเจกตของ String ขึ้นมาใหม โดยการเก็บขอความ “Test” ที่อยู ใน str1 ดังนั้นตําแหนงของออบเจกตเปลี่ยนไป 0xaba22 str2
o o
Test
String str2 = new String(str1)
บรรทัดที่ 11 มีการเปรียบเทียบวา str1= =str2 หรือไม ผลที่ไดเปน fales เพราะ str1 และ str2 ไมไดอยูตําแหนงเดียวกัน บรรทัดที่ 12 มีการเปรียบเทียบโดยใชเมธอด equals คือ เปรียบเทียบวาขอมูลที่อยูใน str1 มี คาเทากับขอมูลที่อยูใน str2 หรือไม ผลที่ไดเปน true เพราะ str1 และ str2 เก็บขอความ “Test” เหมือนกัน
ตัวอยาง
ผลลัพธที่ได :
@
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 1 ทําการกําหนดคาใหกับ str1=“Test” คือ str1 เก็บขอความ “Test” o บรรทัดที่ 2 ทําการกําหนดคาใหกับ str1=“test” คือ str1 เก็บขอความ “test”
[email protected]
7/31
String & Array o
o
3.1.9
Modern Programming Languages
บรรทัดที่ 3 มีการเปรียบเทียบโดยใชเมธอด equals คือ เปรียบเทียบวาขอมูลที่อยูใน str1 มีคา เทากับขอมูลที่อยูใน str2 หรือไม ผลที่ไดเปน false เพราะ การเปรียบเทียบคํานึงถึงตัวพิมพ เล็กและตัวพิมพใหญ บรรทัดที่ 4 มีการเปรียบเทียบโดยใชเมธอด equalsIgnoreCase คือ การเปรียบเทียบไม คํานึงถึงตัวพิมพเล็กและตัวพิมพใหญ ดังนั้นการเปรียบเทียบขอมูลที่อยูใน str1 มีคาเทากับ ขอมูลที่อยูใน str2 หรือไม ผลที่ไดเปน true
การเปรียบเทียบสตริงดวยเมธอด compareTo
ใชในการเปรียบเทียบขอมูลในสตริง วาขอความไหนมากอนในการเรียงลําดับตามอักษร ทําไดโดยเรียกใชงาน เมธอด compareTo สตริงตัวแรกที่ตองการเปรียบเทียบ.compareTo (สตริงตัวที่สองที่ตองการเปรียบเทียบ) public int compareTo(String anotherString) เปรียบเทียบลําดับในพจนานุกรมระหวางตัวแปร anotherString กับตัวแปรสตริงที่เรียกใชเมธอดนี้
ยกตัวอยางเชน str1.compareTo(str2) หากมีการสงคากลับดังนี้ o ไดคา int < 0 แสดงวา str1 อยูกอน str2 o ไดคา int = 0 แสดงวา str1 เหมือนกับ str2 o ไดคา int > 0 แสดงวา str1 อยูหลัง str2 ตัวอยาง
ผลลัพธที่ได :
[email protected]
8/31
String & Array @
Modern Programming Languages
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 5 ทําการเปรียบเทียบ str1 ซึ่งเก็บขอมูล “bat” และ str2 ซึ่งเก็บขอมูล “bee” ไดคา -4 ซึ่งมีคานอยกวา 0 ดังนั้น “bat” อยูกอน “bee” o บรรทัดที่ 8 ทําการเปรียบเทียบ str1 ซึ่งเก็บขอมูล “bat” และ str4 ซึ่งเก็บขอมูล “bat” ไดคา 0 ดังนั้น “bat” เหมือนกับ “bat” o บรรทัดที่ 11 ทําการเปรียบเทียบ str3 ซึ่งเก็บขอมูล “cat” และ str2 ซึ่งเก็บขอมูล “bee” ได คา 1 ซึ่งมีคามากกวา 0 ดังนั้น “cat” อยูหลัง “bee”
3.1.10 การเปลี่ยนคาขอมูลตางๆไปเปนสตริง
การเปลี่ยนคาชนิดขอมูลพื้นฐาน และขอมูลชนิดอางอิง ไปเปนสตริง ทําไดโดยเรียกใชงานเมธอด valueOf public static String valueOf(boolean b) ทําการเปลี่ยนคาตัวแปร b ซึ่งเปนชนิด boolean ใหเปนสตริง public static String valueOf(int i) ทําการเปลี่ยนคาตัวแปร i ซึ่งเปนชนิด int ใหเปนสตริง public static String valueOf(long l) ทําการเปลี่ยนคาตัวแปร l ซึ่งเปนชนิด long ใหเปนสตริง public static String valueOf(float f) ทําการเปลี่ยนคาตัวแปร f ซึ่งเปนชนิด float ใหเปนสตริง public static String valueOf(double d) ทําการเปลี่ยนคาตัวแปร d ซึ่งเปนชนิด double ใหเปนสตริง public static String valueOf(char c) ทําการเปลี่ยนคาตัวแปร c ซึ่งเปนชนิด char ใหเปนสตริง public static String valueOf(char[] data) ทําการแปลงคาตัวแปรอะเรย data ซึ่งเปน char แบบอะเรย ใหเปนสตริง โดยจะนําตัวอักษรมาเรียง
ตอกันตามลําดับในอะเรย public static String valueOf(Object obj) ทําการคืนคาสตริง ที่เปนชื่อของคลาส obj และตําแหนงของออบเจกตนั้น
ตัวอยาง
[email protected]
9/31
String & Array
Modern Programming Languages
ผลลัพธที่ได :
@
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 4 ทําการเปลี่ยนคาในตัวแปร b ซึ่งเปนชนิด boolean ที่มีคาเปน true ไปเปน สตริง แลวนําขอมูลไปเก็บในตัวแปร strBoolean จากการแสดงผลในบรรทัดที่ 12 จะได ขอความ “true” o บรรทัดที่ 5 ทําการเปลี่ยนคา ‘A’ ซึ่งเปนขอมูลชนิด char ไปเปนสตริง แลวนําขอมูลไป เก็บในตัวแปร strChar จากการแสดงผลในบรรทัดที่ 13 จะไดขอความ “A” o บรรทัดที่ 6 ทําการเปลี่ยนคา 1 ซึ่งเปนขอมูลชนิด int ไปเปนสตริง แลวนําขอมูลไปเก็บใน ตัวแปร strInt จากการแสดงผลในบรรทัดที่ 14 จะไดขอความ “1” o บรรทัดที่ 7 ทําการเปลี่ยนคา 2 ซึ่งเปนขอมูลชนิด long ไปเปนสตริง แลวนําขอมูลไปเก็บ ในตัวแปร strLong จากการแสดงผลในบรรทัดที่ 15 จะไดขอความ “2” o บรรทัดที่ 8 ทําการเปลี่ยนคา 4 ซึ่งเปนขอมูลชนิด float ไปเปนสตริง แลวนําขอมูลไปเก็บ ในตัวแปร strFloat จากการแสดงผลในบรรทัดที่ 16 จะไดขอความ “4.0” o บรรทัดที่ 9 ทําการเปลี่ยนคา 7 ซึ่งเปนขอมูลชนิด double ไปเปนสตริง แลวนําขอมูลไป เก็บในตัวแปร strDouble จากการแสดงผลในบรรทัดที่ 17 จะไดขอความ “7.0” o บรรทัดที่ 10 ทําการแปลงคาตัวแปรอะเรย data ซึ่งเปน char แบบอะเรย ซึ่งประกอบไป ดวยขอมูล {‘M’, ‘O’, ‘D’, ‘E’, ‘R’, ‘N’} โดยจะนําตัวอักษรมาเรียงตอกันตามลําดับ ในอะเรย แลวนําขอมูลไปเก็บในตัวแปร strCharArray จากการแสดงผลในบรรทัดที่ 18 จะไดขอความ “MODERN” o บรรทัดที่ 11 ทําการคืนคาสตริง ที่เปนชื่อของคลาส obj และตําแหนงของออบเจกต แลว นํ า ข อ มู ล ไปเก็ บ ในตั ว แปร strObject จากการแสดงผลในบรรทั ด ที่ 19 จะเห็ น ว า java.lang.Object เปนชื่อคลาส และ @cac268 เปนตําแหนงของออบเจกต
3.2 คลาส StringBuffer • •
ในคลาส String จะเห็นวาเมธอดตางๆ จะใหผลลัพธเปน String ที่ถูกสรางใหมขึ้นมา โดยไมไดถูก ดัดแปลงขอมูลของตัวมันเอง คลาส StringBuffer คือตัวแปรอางอิงแบบ String แตสามารถปรับเปลี่ยนขอมูลไดโดยไมตองสราง String ใหม คือการเปลี่ยนแปลงขอมูลจะถูกกระทําในออบเจกตของ StringBuffer เอง
[email protected]
10/31
String & Array
Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได :
@
จากตัวอยางขางตน ทําการพิจารณาทีละบรรทัด o บรรทัดที่ 3 ทําการสรางออบเจกต buf ซึ่งเปนขอมูลอางอิงชนิด StringBuffer ขอมูลที่ถูก สรางขึ้นเปนคาวาง o บรรทัดที่ 4 ที่ทําการคอมเมนต เนื่องจากออบเจกต buf ไมสามารถกําหนดตัวแปรใหกับออบ เจกตไดเหมือนกับ String หากตองการกําหนดคาขอมูลเริ่มตนทําไดดังนี้ @ StringBuffer buf = new StringBuff(“Halo!!!”); o o o o o
บรรทัดที่ 5 แสดงขนาดขอมูลที่อยูในออบเจกต buf โดยเรียกใชเมธอด length ไดคา 0 เนื่องจากขอมูลที่ถูกสรางขึ้นเปนคาวาง บรรทัดที่ 6 เรียกใชเมธอด append เพื่อนําขอมูล “Halo!!!” ไปตอทายขอมูลที่มีอยู บรรทัดที่ 7 แสดงขนาดขอมูลที่อยูในออบเจกต buf หลังจากการเพิ่มขอมูลเขาไป ไดคา 7 บรรทัดที่ 8 เรียกใชเมธอด append เพื่อนําขอมูล “How are you ?” ไปตอทายขอมูลที่มีอยู บรรทัดที่ 9 แสดงขนาดขอมูลที่อยูในออบเจกต buf หลังจากการเพิ่มขอมูลเขาไป ไดคา 21
3.3 อะเรย (Array) • • •
อะเรยในภาษาจาวา คือ ตัวแปรขอมูลแบบอางอิง ที่ใชเก็บขอมูลชนิดเดียวกันไดหลายคา ตัวแปรอะเรยจะเปนตัวแปรที่มีชื่อเดียวกัน แตมีสมาชิกไดหลายตัว ภาษาจาวาแบงตัวแปรอะเรยเปน 2 ประเภทคือ o อะเรยของขอมูลชนิดพื้นฐาน คือ อะเรยที่สามารถอะเรยที่สามารถใชเก็บขอมูลที่มีชนิดขอมูล แบบพื้นฐานชนิดใดชนิดหนึ่งไดหลายคา o อะเรยของขอมูลชนิดคลาส คือ อะเรยที่สามารถใชเก็บขอมูลที่เปนออบเจกตของคลาสใดๆ ได หลายออบเจกต
[email protected]
11/31
String & Array
Modern Programming Languages
การประกาศตัวแปรอะเรย รูปแบบการประกาศตัวแปรอะเรย คลายกับการประกาศตัวแปรชนิดขอมูลแบบอื่นๆ แตตัวแปรอะเรยจะมี เครื่องหมาย [ ] อยูดานหนาหรือดานหลัง รูปแบบ [
] dataType[ ] variableName;
หรือ [] dataType variableName[ ];
การสรางอะเรยของขอมูลชนิดพื้นฐาน อะเรยในภาษาจาวาจะเปนตัวแปรแบบอางอิงชนิดหนึ่ง (เชนเดียวกับออบเจกต) การสรางอะเรยจะ สามารถทําไดโดยการเรียกใชคําสั่ง new รูปแบบ datyType[] variableName = new dataType[size];
โดยที่ •
variableName คือชื่อของตัวแปรอะเรย
•
dataType คือชนิดขมูลของสมาชิกในอะเรย
•
size คือจํานวนสมาชิกของอะเรยที่ตองการ
ตัวอยาง
x x[0] x[1] x[2] x[3] x[4]
จากตัวอยางเปนการสรางตัวแปรอะเรยชื่อ x มีจํานวนสมาชิก 5 ตัว โดยที่แตละตัวเปน ชนิด int การอางอิงสมาชิกของอะเรย • ตัวแปรอะเรยที่สรางขึ้นจะมีสมาชิกที่มีหมายเลขตั้งแต 0 จนถึง size - 1 • รูปแบบการอางอิงถึงสมาชิกของอะเรยแตละตัว variableName[index] โดยที่ index คือตัวเลขในการระบุตําแหนงของสมาชิก ซึ่งมีตําแหนงไดตั้งแต 0 ถึง size-1
[email protected]
12/31
String & Array
Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได : @ @
0123
จากตัวอยางขางตน เปนการสรางตัวแปรอะเรย a มีขนาด 4 แลวทําการวนรอบในการกําหนดคาขอมูล ใหกับสมาชิกแตละตัว a.length คือตัวแปรออบเจกตของอะเรย ที่ทําการเก็บขนาดของอะเรยไว int a[] = {0, 1, 2, 3};
int y[] = {77, 90};
a
y a[0] a[1] a[2] a[3] 0
1
2
y[0] y[1]
3
77
90
y = a;
a a[0] a[1] a[2] a[3] 0
1
2
3
y y[0] y[1] 77
90
การกําหนดคาเริ่มตนใหกับสมาชิกของอะเรย • คาเริ่มตนของสมาชิกของอะเรย จะถูกกําหนดใหโดยอัตโนมัติ ซึ่งจะมีคาตามคาเริ่มตนของชนิดขอมูล นั้น ๆ • เราสามารถสรางอะเรยพรอมกับกําหนดคาเริ่มตนใหกับสมาชิกของอะเรยเองได รูปแบบ dataType[] variableName = {value1,value2,..,valueN};
โดยที่ value1, value2,…, valueN เปนคาเริ่มตนที่ตองการกําหนดใหกับสมาชิกของอะเรย โดย จะตองเปนขอมูลที่สอดคลองกับ dataType ที่กําหนด [email protected]
13/31
String & Array
Modern Programming Languages
ตัวอยาง
ตัวอยางขางตนเปนการสรางตัวแปรอะเรยชื่อ x มีสมาชิก 5 ตัว โดยที่ x[0], x[1], x[2], x[3] และ x[4] มีคาเริ่มตนเปน 1, 3, 5, 7 และ 9 ตามลําดับ ในกรณีที่เปนตัวแปรอะเรยของขอมูลชนิดคลาส สามารถทําการกําหนดคาเริ่มตนไดดังนี้
จากขางตนสรางตัวแปรอะเรยของคลาส Student ชื่อ s มีสมาชิก 3 ตัว ทําการกําหนดคา เริ่มตนใหกับสมาชิก s[0], s[1] และ s[2] โดยการสรางออบเจกตของ Student ขึ้นมา การสราง ออบเจกต Student อางอิงคลาสตนแบบจาก ตัวอยางคลาส Student ดานลาง • ใหสังเกตที่บรรทัดที่ 4-8 เปนเมธอดพิเศษที่มีชื่อเดียวกับชื่อคลาสเรียกวา คอนสตรัคเตอร (Constructor)ที่ มีการกําหนดวาจะตองสงคาเริ่มตนตางๆ มาเก็บในตัวแปรของออบเจกต o พารามิเตอร i สงคาเขามาเก็บใน id o พารามิเตอร n สงคาเขามาเก็บใน name o พารามิเตอร g สงคาเขามาเก็บใน gpa • เมื่อมีการสรางออบเจกต Student อยาลืมวา จะมีสิ่งที่เกิดขึ้น คือ o มีการจองพื้นที่หนวยความจํา เพื่อเก็บขอมูลของออบเจกต o มีการเรียกใชเมธอดพิเศษ(เมธอดที่มีชื่อเหมือนคลาส) ขึ้นเรียกวา constructor ในตัวอยางคลาส Student มีการกําหนดคอนสตรัคเตอรใหมีการใสคาเริ่มตน ใหกับตัวแปรออบเจกต ดังนั้นในการสรางออบเจกต Student ตองใสคา เริ่มตนใหสอดคลองกับพารามิเตอรของคอนสตรัคเตอรที่สรางขึ้น o กําหนดคาเริ่มตนใหกับตัวแปรของออบเจกต ตัวอยางคลาส
Student
[email protected]
14/31
String & Array
Modern Programming Languages
การสรางอะเรยของขอมูลชนิดคลาส สําหรับการสรางอะเรยของขอมูลชนิดคลาส คําสั่ง new จะจองเนื้อที่ในหนวยความจําสําหรับเก็บคาของ สมาชิกของอะเรย ซึ่งจะเปนเพียงแคตําแหนงอางอิงเทานั้น ตัวอยาง
จากตัวอยางนี้สรางตัวแปรอะเรยของคลาส Student ชื่อ s มีสมาชิก 3 ตัว โดยอางอิงจากคลาส ตนแบบ ตัวอยางคลาส Student ดังขางตน แสดงตัวอยางขอมูลหลังการสรางตัวแปรอะเรยไดดังรูป ดานลาง 0x13f5d0 s s[0]
s[1]
s[2]
null
null
null
การสรางออปเจ็คของคลาสใหกับสมาชิก จะตองมีการเรียกใชคําสั่ง new อีก เพื่อสรางออบเจกตของคลาสใหกับสมาชิกแตละตัวของอะเรย ตัวอยาง
จากตัวอยาง มีการสรางออบเจกตของ Student ใหกับสมาชิกทั้ง 3 ตัว ดังรูปดานลางแสดงตัวอยาง ขอมูลที่อยูในสมาชิกของอะเรย
s[0] = new Student(“111”,”Masha”,3.0); 111
0x13f5d0
Masha s
3.0 s[0]
0xf4a24a
s[1]
0xcac268
222
s[2]
0x1a16869
Bob
s[1] = new Student(“222”,”Bob”,2.5);
2.5 s[2] = new Student(“333”,”Anna”,2.7); 333 Anna 2.7
[email protected]
15/31
String & Array
Modern Programming Languages
ตัวอยาง
ผลลัพธที่ได :
@
จากตัวอยางขางตน o บรรทัดที่ 15 สรางตัวแปรตัวแปรอะเรยของคลาส Student มีสมาชิก 3 ตัว o บรรทัดที่ 16-18 สรางออบเจกต Student ใหกับสมาชิกที่มีอยู และมีการกําหนดคาเริ่มตน ใหกับขอมูลดวย o บรรทัดที่ 19-20 วนรอบตามจํานวนของสมาชิกที่มี เพื่อทําการแสดงขอมูลของ Student แตละ คนออกมา จะเห็นวาผลที่ไดแสดงขอมูลของ Student แตละคนออกมา ขอมูลที่ไดเปนขอมูลที่ ไดจากการสรางออบเจกต Student
อะเรยหลายมิติ เราสามารถที่จะประกาศอะเรยมากกวาหนึ่งมิติไดกรณีของอะเรยสองมิติ มีรูปแบบการประกาศตัวแปร ดังนี้ [accessibility] dataType[][] variableName;
หรือ [accessibility] dataType variableName[][];
รูปแบบ การสรางตัวแปรอะเรยสองมิติเปนดังนี้ dataType varName[][] = new dyataType[row] [col];
[email protected]
16/31
String & Array
Modern Programming Languages
โดยที่ •
row คือจํานวนสมาชิกในแตละแถว
•
col
คือจํานวนสมาชิกในแตละคอลัมน
ตัวอยาง
จากตัวอยางเปนการสรางตัวแปรอะเรยสองมิติ ชื่อ x ซึ่งมีขนาด 3 แถว 4 คอลัมน การเรียกใชสมาชิกของอะเรยสองมิติทําไดโดยระบุตําแหนงของแถวและคอลัมน มีรูปแบบดังนี้ varName[rowNum] [colNum];
โดยที่ •
rowNum คือแถวของสมาชิกอะเรยสองมิติ
•
colNum
คือคอลัมนของสมาชิกอะเรยสองมิติ
ตัวอยาง
หมายถึงสมาชิกของอะเรยสองมิติ x ในตําแหนงแถวที่ 1 คอลัมนที่ 2 ดังรูปดานลาง X[1][2]
x 0
1
2
3
x[0] x[1] x[2]
การหาขนาดของอะเรย ทุกอะเรยในภาษาจาวาจะมีคุณลักษณะที่ชื่อ length ซึ่งจะมีคาเทากับจํานวนสมาชิกทั้งหมดของอะเรย นั้น ตัวอยาง Æ ¾ x.length มีคาเทากับ 5
¾ x.length มีคาเทากับ 2 ¾ x[1].length มีคาเทากับ 4
[email protected]
17/31
String & Array
Modern Programming Languages
อะเรยสองมิติที่แตละแถวมีจํานวนคอลัมนตางกัน การสรางอะเรยสองมิติในภาษาจาวา ไมจําเปนที่จํานวนคอลัมนของแตละแถวจะตองเทากัน แสดงการ สรางดวยตัวอยางตอไปนี้ ตัวอยาง 1
หรือ
ตัวอยาง 2
หรือ สามารถใชการวนลูปในการกําหนดคาเริ่มตน ดังนี้
[email protected]
18/31
String & Array
Modern Programming Languages
จาก ตัวอยาง 2 แสดงขอมูลอะเรยสองมิติ ไดดังรูปดานลาง int myTable[][] = new int[4][]; myTable myTable[0][0] myTable[0] = new int[] {0}; myTable[0] myTable[1] = new int[] {0, 1}; myTable[1] myTable[2] = new int[] {0, 1, 2}; myTable[2] myTable[3] = new int[] {0, 1, 2, 3}; myTable[3] myTable[3][3]
การกําหนดขนาดเริ่มตนใหกับอะเรยหลายมิติ //OK. //OK.
แต //Compiled Error
สังเกตการกําหนดขนาดของอะเรยตอไปนี้
// 4 bytes * 250 * 1000 * 1000 = 1 GB.
3.4 คลาส Vector
คลาส Vector เปนคลาสที่สรางขึ้นมาเพื่อเก็บกลุมขอมูลของออบเจกตใดๆ โดยไมจํากัดจํานวนสมาชิก ในขณะที่อะเรยนั้นไมสามารถเพิ่มขนาดสมาชิกได คลาส Vector อยูในแพ็คเกจ java.util ดังนั้นการเรียกใชงานจะตอง import java.util.Vector; ขึ้นมา • เมธอดที่สําคัญ มีดังนี้ o o
public void addElement(Object obj) เปนการเพิ่มสมาชิกออบเจกต obj ลงไปในออบเจกต Vector public void insertElementAt(Object obj, int index) เปนการแทรกสมาชิกออบเจกต obj ลงไปในออบเจกต Vector ยังตําแหนง index
ตองการ o
public void removeElementAt(int index) เปนการลบสมาชิกออบเจกตในออบเจกต Vector ณ ตําแหนง index ที่ตองการ
[email protected]
19/31
ที่
String & Array o
Modern Programming Languages
public Object elementAt(int index)
เปนการคืนคาสมาชิกออบเจกตที่อยูในออบเจกต Vector ณ ตําแหนง index ที่ตองการ o
public int size();
เปนการคืนคาจํานวนสมาชิกที่อยูในออบเจกต Vector o
public void clear();
เปนการลบสมาชิกออบเจกตทั้งหมดที่อยูในออบเจกต Vector ตัวอยาง การใชงานคลาส Vector ( 1 )
ผลลัพธที่ได : 1 2 4 @
3
จากตัวอยางขางตน ทําการพิจารณาการทํางานทีละบรรทัดดังนี้ o บรรทัดที่ 4 เปนการสรางออบเจกต vString ซึ่งเปนตัวแปรอางอิงของคลาส Vector o บรรทัดที่ 5-7 เปนการเพิ่มออบเจกตสตริง ไปเก็บในออบเจกต vString โดยที่ “String1” จะ ถูกเก็บในตําแหนงที่ 0, “String2” จะถูกเก็บในตําแหนงที่ 1 และ “String3” จะถูกเก็บใน ตําแหนงที่ 2 ตามลําดับ 1 o บรรทัดที่ 8 เปนการแสดงผลขอมูลที่อยูในออบเจกต vString โดยที่จะแสดงขอมูลสมาชิกงออบ เจกตสตริงที่อยูในออบเจกต vString ตามลําดับ โดยแสดงขอมูลในเครื่องหมาย [ ] และ สมาชิกแตละออบเจกต ถูกคั่นดวย , (comma) o บรรทัดที่ 9 เปนการแทรก “String4” ไปยังตําแหนงที่ 0 เปนการแสดงผลขอมูลที่อยูในออบเจกต vString โดยเรียกใชเมธอด 2 o บรรทั ดที่ 10-11 elementAt ซึ่ ง จะทํ า การคื น ค า ออบเจกต ใ นตํา แหนง จากผลลัพ ธ จ ะสั ง เกตเห็ น ได ว า “String4” ถูกแทรกไปยังตําแหนงที่ 0 ในการวนรอบนั้นจะทําการวนรอบตามจํานวนสมาชิกที่ อยูในออบเจกต vString โดยใชงานเมธอด size() เพื่อดูจํานวนสมาชิกในออบเจกต vString o บรรทัดที่ 12 เปนการลบออบเจกต ณ ตําแหนงที่ 0
[email protected]
20/31
String & Array
Modern Programming Languages
3 o บรรทัดที่ 13 เปนการแสดงผลขอมูลที่อยูในออบเจกต vString หลังจากลบออบเจกต ณ o
4 o
ตําแหนงที่ 0 จะเห็นวา “String1” จะมาอยูในตําแหนงที่ 0 แทน บรรทัดที่ 14 เปนการลบออบเจกตทั้งหมดที่อยูในออบเจกต vString บรรทัดที่ 15 เปนการแสดงผลขอมูลที่อยูในออบเจกต vString หลังจากถูกลบสมาชิกออบ เจกตทั้งหมด
ตัวอยาง การใชงานคลาส Vector ( 2 ) จากตัวอยางนี้ จะแสดงใหเห็นวา Vector สามารถเก็บสมาชิกของออบเจกตตางชนิดกันได
[email protected]
21/31
String & Array
@
Modern Programming Languages
จากตัวอยางขางตน แยกดูทีละสวนดังนี้ @ ประกอบดวย คลาส 3 คลาส คลาส Circle ประกอบดวย ตัวแปรออบเจกต radius คลาส Triangle ประกอบดวย ตัวแปรออบเจกต base, ตัวแปรออบเจกต height คลาส Rectangle ประกอบดวย ตัวแปรออบเจกต width, ตัวแปรออบเจกต height
[email protected]
22/31
String & Array
Modern Programming Languages
Circle
Triangle
Rectangle
float radius
float base float height
float widht float height
float area() String toString()
float area() String toString()
float area() String toString()
คลาสทั้ง 3 คลาส ตางประกอบดวยเมธอด toString ที่ทําการเก็บขอมูลรายละเอียด ของแตละรูปทรง คลาสทั้ง 3 คลาส ตางประกอบดวยเมธอด area ที่ทําหารคํานวณคาพื้นที่ของแตละ รูปทรง และสงคืนคาการคํานวณเปนชนิด float
@
มาทําความรูจักเมธอด toString() กันกอน เมธอด toString เปนเมธอดที่ใชในการแปลงคาในออบเจกตใหเปนขอมูลสตริง เมื่อเราทํา การแสดงผลออบเจกตนั้นดวยคําสั่ง System.out.println() หรือมีการเชื่อมตอออบเจกต นั้นกับขอมูลสตริง โดยรูปแบบของเมธอด toString() แสดงรูปแบบดังนี้
โดยที่ภาษาจาวากําหนดวา หากคลาสใดประกอบดวยเมธอด toString เมื่อมีการคําสั่ง แสดงผลออบเจกต หรือมีก ารเชื่อ มตอ ออบเจกตกับสตริง แลว ออบเจกตนั้ น จะทํา การ เรียกใชงานเมธอด toString อัตโนมัติ
ผลลัพธที่ได :
1
2
@
จากตัวอยางขางตน ทําการพิจารณาการทํางานทีละบรรทัดดังนี้ o บรรทัดที่ 49 เปนการสรางออบเจกต vShape ซึ่งเปนตัวแปรอางอิงของคลาส Vector
[email protected]
23/31
String & Array o o o
Modern Programming Languages
บรรทัดที่ 50-57 เปนการสรางออบเจกต ของรูปทรงตางๆ และทําการกําหนดคาใหกับตัว แปรออบเจกตของรูปทรงตางๆดวย บรรทัดที่ 58-59 เปนการเพิ่มออบเจกต c ไปเก็บในออบเจกต vShape จะถูกเก็บใน ตําแหนงที่ 0, ออบเจกต t จะถูกเก็บในตําแหนงที่ 1 ตามลําดับ บรรทัดที่ 60 เปนการแสดงผลขอมูลที่อยูในออบเจกต vShape โดยเรียกใชเมธอด dispalyElement ซึ่งสรางขึ้นเอง โดยสงคาออบเจกต vShape เขาไปในเมธอดเพื่อ วนรอบแสดงผลขอมูลตามจํานวนสมาชิกที่มีอยูที่มีอยูในออบเจกต vShape จากการวนรอบดังนี้ for (int i=0;i
•
System.out.println(v.elementAt(i)); v.size() มีคาเทากับ 2
รอบแรก เปนการแสดงขอมูลสมาชิกในตําแหนงที่ 0 (v.elementAt(0)) ซึ่งเปน ออบเจกตของ Circle และในออบเจกตนี้ประกอบดวยเมธอด toString คือเมื่อ ทําการใชคําสั่ง System.out.println() ออบเจกต Circle จะไปเรียกใชงานเมธ อด toString อัตโนมัติ ทําใหแสดงผลรายละเอียดของออบเจกต Circle ตามที่ กําหนดไวในเมธอด toString รอบที่สอง เปนการแสดงขอมูลสมาชิกในตําแหนงที่ 1 (v.elementAt(1)) ซึ่ง เปนออบเจกตของ Triangle และในออบเจกตนี้ประกอบดวยเมธอด toString เชนกัน ทําใหแสดงผลรายละเอียดของออบเจกต Triangle ตามที่กําหนดไวใน เมธอด toString Circle c = new Circle(); c.radius = 2;
0x13f5d0
0xf4a24a c 2.0
vShape
vShape[0]
c
vShape[1]
t
radius
Triangle t = new Triangle(); t.base = 3; t.height = 6; 0xcac268 t
…
o o
3.0
base
6.0
height
บรรทัดที่ 61 เปนการแทรกออบเจกร r ไปยังตําแหนงที่ 1 บรรทัดที่ 62 เปนการแสดงผลขอมูลที่อยูในออบเจกต vShape โดยเรียกใชเมธอด dispalyElement เหมื อนกั บขา งตน แต ผลที่ไ ด ออบเจกต r ถู กแทรก ณ ตําแหน งที่ 1 และออบเจกต t จะอยูในตําแหนงที่ 2
[email protected]
24/31
String & Array
Modern Programming Languages
0xf4a24a c
0x13f5d0
2.0
vShape
vShape[0]
c
vShape[1]
r
vShape[2]
t
radius
Rectangle r = new Rectangle (); r.width = 4.5f; r.height = 5.5f; 0xcac268 4.5
0xcac268 …
[email protected]
width
r t
height
5.5 3.0
base
6.0
height
25/31
String & Array
Modern Programming Languages
แบบฝกหัด 1. สรางโปรแกรม MyWord.java public class MyWord { final static String[] MY_WORD = {“It's could only be Heineken”, “Hello,I have to go to somewhere”, “Someday, I will find my way”, “Life is not beautiful” }; public static void main(String args[]){ int count,pos; String[] str = MyWord.MY_WORD; for(int i=0;i<str.length;i++) { count = 0; System.out.println("Find 'e' in this sentence "+str[i]); System.out.print("Found 'e' at index :"); for(int j=0;j<str[i].length();j++) { if (str[i].charAt(j)=='e') { count++; System.out.print(" "+j); } } System.out.println("\nTotal 'e' : "+count); System.out.println("**********************************"); } } }
ผลที่ได : _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ จากขอ 1 ทําการคนหาตัวอักษร ‘e’ โดยตองใชเมธอด indexOf เทานั้น ในแตละประโยคใน String array MY_WORD โดยแสดงผลลัพธดังผลที่ไดขางตน
[email protected]
26/31
String & Array
Modern Programming Languages
2. สรางโปรแกรม ArraySort.java ทําการ sort คาของอะเรย public class ArraySort { static void printList(int list[]) { for(int i=0; i<list.length; i++) System.out.print(list[i]+" "); System.out.println(); } public static void main(String args[]) { int myArray[] = {3,4,5,2,6,3}; System.out.println("My original list is:"); printList(myArray);
// ทําการ sort อะเรยจากนอยไปมาก
_____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ System.out.println("The result after sorted is:"); printList(myArray); } } //End class ArraySory
ผลที่ได : _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ เมื่อทดลองขางตนเสร็จ ใหทําการ random คาจํานวนเต็ม 1-10 เพื่อกําหนดขนาดของอะเรย และ random คาจํานวนเต็ม 1-20 เพื่อใสคาลงในอะเรย จากนั้นใหแสดงอะเรยที่สุมคามาได แลวทําการ sort และ แสดงผล
[email protected]
27/31
String & Array
Modern Programming Languages
3. สรางโปรแกรม MyDict.java public class MyDict { final String[] MY_DICT = {“JavaDoc”, “Java2”, “Modern”, “Midterm”, “abort”, “zero” }; public static void main(String args[]){
/* ทําการสราง sort ขอมูลใน String array MY_DICT ของคลาส MyDict
เรียงลําดับตาม dictionary a-z */ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ } }
ผลลัพธเปนดังนี้
[email protected]
28/31
String & Array
Modern Programming Languages
4. สรางโปรแกรม CheckPassword.java public class CheckPassword { public static void main(String[] args) { String[] badWords = {"modern", "java" }; String password; boolean ok; int i, j; System.out.print("Enter your password: "); password = Console.readString(); //รับคาเขาเปนสตริง ok = true; // check length if(ok) { //ตรวจสอบความยาว password ที่รับเขามาตองไมนอยกวา 8 ตัวอักษร ){ if( ok = false; System.out.println("Password must more than 8 chars"); } } // check for bad words if(ok) { for(i = 0; i < badWords.length; i++) { //ทําการตรวจสอบคา password ที่รับเขามาวาตรงกับ badWord หรือไม ){ if( ok = false; // found System.out.println("Bad word"); // no need to search anymore break; } } } if(ok) System.out.println("Your password is OK"); else System.out.println("Your password is NOT OK"); } }
ผลที่ได : _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ เมื่อทดลองขางตนเสร็จ ใหเพิ่มการตรวจสอบ password คือ หามมีคําซ้ํากันใน password (คํานั้นไมเกิน 4 อักษร) เชน Password : Password : Password :
Programprogram //OK namename //NOT OK manmanman //NOT OK
[email protected]
29/31
String & Array
Modern Programming Languages
5. สรางโปรแกรม AddMetrix.java public class AddMetrix { static public void randMetrix(int[][] m) { for(int row = 0; row < m.length; row++) for(int column = 0; column < m[row].length; column++) m[row][column] = (int)(Math.random()*10 + 1); } static void printList(int list[][]) { for(int row = 0; row < list.length; row++) { for(int column = 0; column < list[row].length; column++) { System.out.print(list[row][column]+" "); } System.out.println(); } } public static void main(String[] args) { int[][] metrix1, metrix2, result; int row, column; // initialize metrix data metrix1 = new int[2][2]; metrix2 = new int[2][2]; result = new int[2][2]; // input metrix A System.out.println("Metrix A:"); randMetrix(metrix1); printList(metrix1); System.out.println("Metrix b:"); randMetrix(metrix2); printList(metrix2); System.out.println(); // calculate for(row = 0; row < result.length; row++) for(column = 0; column < result[row].length; column++) result[row][column] = metrix1[row][column] + metrix2[row][column]; // print output System.out.println("Result:"); printList(result); } }
ผลที่ได : _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ เมื่อทดลองขางตนเสร็จ ใหทําการสรางเมทริกซ 3X3 และทําการรับคาเขาจาก keyboard
[email protected]
30/31
String & Array
Modern Programming Languages
และการสรางเมนูดังนี้ กด 0 ออกจากโปรแกรม กด 1 บวก Matrix กด 2 ลบ Matrix กด 3 คูณ Matrix กด 4 หา Determinant เมื่อทําการเลือกเมนูใด ใหแสดงผลลัพธของการกระทํานั้น ๆ ทางหนาจอ
[email protected]
31/31