Page 57 - การโปรแกรมคอมพิวเตอร์ขั้นสูง
P. 57
สตริงบิวเดอร์ 2-47
คำ�อธิบายก ารท�ำ งาน
จากต ัวอย่างน ี้ เป็นการส่งค่ามาทั้งหมด 3 ค่า ประกอบด้วย ค่า 10 ค่า b และค่า P ตามล ำ�ดับ ซึ่งท ุกค ่าที่ส ่ง
เข้ามาจะถูกจัดเก็บไว้ในรูปแบบของอาร์เรย์ ดังนั้น ตัวเลขท ี่ส่งเข้ามาจากตัวอย่างค ือ ค่า 10 นั้น หากต้องการน ำ�ไป
ค�ำ นวณต อ่ ต้องท�ำ การแปลงกลับมาใหเ้ ป็นช นดิ ตวั เลขก อ่ น ซงึ่ ถ า้ เปน็ เลขจ�ำ นวนเต็มใหใ้ช้เมธอด Integer.parseInt( )
จึงจ ะสามารถน ำ�ไปคำ�นวณได้
ตวั อยา่ งท่ี 2.26 การส ่งค ่าอาร์กิวเมนต์ผ่านทางบ รรทัดค�ำส ั่งของโปรแกรมช ื่อ Teststr ต้องการส่งส ตริงย าว ๆ เม่ืออ ยู่
ท่ีบ รรทัดค �ำส ั่งต้องพิมพ์ค�ำส ั่ง ดังนี้
java Teststr "Welcome" 30 "java" x
ค�ำ อธบิ ายก ารท�ำ งาน
ถ้าหากต้องการส่งค่าสตริงยาว ๆ สามารถทำ�ได้โดยการใส่สตริงดังกล่าวไว้ภายใต้เครื่องหมายอัญประกาศ
แบบค ู่ จากตัวอย่างนี้เป็นการส่งค่ามาท ั้งหมด 4 ค่า ประกอบด้วย ค่า Welcome ค่า 30 ค่า java และค่า x ตามล ำ�ดับ
จะเห็นว่าสามารถส่งค่าสตริงยาว ๆ ได้ โดยขณะรันโปรแกรมต้องป้อนค่าสตริงเหล่านั้นอยู่ภายใต้เครื่องหมาย
อัญประกาศแบบคู่ ซึ่งเครื่องหมายอัญประกาศคู่นั้นจาวาไม่ได้เก็บไว้ แต่จัดเก็บจริง ๆ เฉพาะค่าของสตริงเท่านั้น
จากต ัวอย่างค ือ เก็บเฉพาะค่า Welcome และ java เท่านั้น
ตัวอยา่ งท ่ี 2.27 การส ่งค่าอาร์กิวเมนต์ผ ่านท างบ รรทัดค �ำส ่ัง
Testvar.java
1 class ReadDatacommand {
2 public static void main(String[ ] args) {
3 System.out.println("จำ�นวนค่าที่ส่งมา : "+args.length);
4 int count = args.length;
5 if (count > 0) {
6 for (int i=0; i<count; i++) {
7 System.out.println("ค่าที่ส่งมา = "+args[i]);
8 }
9 }
10 }
11 }
คำ�อธิบายโ ปรแกรม
บรรทัดท ี่ 1-11 สร้างคลาสช ื่อ ReadDatacommand
บรรทัดที่ 2-10 สร้างเมธอด main เพื่อเริ่มต้นการท ำ�งานของโปรแกรม