ต้องการวนลูปข้อมูลจากตัวแปรชนิด String เพื่อแสดงผลทีละตัวอักษร โดยใช้ตัวแปรอ้างถึงลำดับ (index) ของ String แต่พอรันแล้วขึ้นข้อความว่า error: array required, but String found และโปรแกรมไม่ทำงาน อยากทราบวิธีแก้ไขปัญหานี้ ตัวอย่างโค้ดตามด้านล่าง
class Main {
public static void main(String args[]) {
String message = "Happy World";
for( int i=0; i<message.length(); i++ ) {
System.out.println( message[i] );
}
}
}
วิธีแก้ไข
ปัญหานี้เกิดจากการเข้าถึงข้อมูลจากลำดับ หรือ index นั้นต้องใช้กับตัวแปรชนิด array ไม่สามารถใช้ได้กับตัวแปรชนิด string กรณีต้องการเข้าถึงตัวอักษรใน string แนะนำคำสั่ง charAt สามารถแก้ไขโปรแกรมได้ดังนี้
class Main {
public static void main(String args[]) {
String message = "Happy";
for( int i=0; i<message.length(); i++ ) {
System.out.println( message.charAt(i) );
}
}
}
ผลลัพธ์
H
a
p
p
y