Chap03

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Chap03 as PDF for free.

More details

  • Words: 3,352
  • Pages: 31
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

Related Documents

Chap03
November 2019 6
Solutions Chap03
November 2019 2
Ufa#ed2#sol#chap03
November 2019 3
Chap03 Sql And Qbe
November 2019 5