Tags:

คือ ผมเพิ่งเริ่มเขียนโปรแกรมจาวาครับ ผมงงเรื่อล้วเก็บงรับข้อมูลจากคีย์บอร์ดหลายๆครั้งแล้วเก็บใน array ต้องเขียน code ยังไงครับ
เพราะ ลองเป็น
Scanner kb = new Scanner(System.in);
String id[]; สร้างอาร์เรย์สำหรับเก็บค่าที่รับจากแป้นพิมพ์
int n=0;
while(true){
String p=kb.next();
id[n]=p; รับค่าจากแป้นพิมพ์แล้วเก็บใน array id
if(p.equals("-1"))break; ถ้าข้อมูลที่พิมพ์เข้าเท่ากับ -1 ให้หยุดรับค่าข้อมูล
n++;
}

แล้วทำไมถึง error ครับ ต้องเขียน code ยังไงครับ ช่วยหน่อยครับ
ขอบคุณครับ

Get latest news from Blognone
By: JavaDevil
iPhoneUbuntuIn Love
on 28 February 2015 - 03:17 #795135

String id[] = new String[xxx];

แต่แนะนำใช้พวก java.util.List ดีกว่า

By: tekkasit
ContributorAndroidWindowsIn Love
on 28 February 2015 - 07:52 #795150
tekkasit's picture

บรรทัดที่สอง id แค่ประกาศตัวแปรสำหรับอ้าง (refer) ไปยัง array of String แต่ยังไม่ได้สร้างขึ้นจริงๆ (create) ครับ

ซึ่งวิธีแก้ ก็อย่างที่คุณ JavaDevil ว่า เนื่องจากเวลาสร้าง array จะระบุขนาด (fixed-length) ถ้าดันไปใช้กับกรณีข้อมูลเกินขนาดที่ประกาศไว้ต้อนสร้างก็แย่ ดังนั้นถ้าต้องรับข้อมูลที่ไม่รู้ขนาด ใช้เป็นพวก Collections อย่าง ArrayList (List) จะถูกต้องกว่าครับ แล้วค่อยแปลงกลับเป็น array ภายหลังก็ได้ (ในกรณีที่ยังต้องใช้ array อยู่)