import java.util.Scanner;
public class Person {
private String oname;
private int age;
private char sex;
public static void main(String[] args) {
Person ka = new Person();
Scanner kb = new Scanner(System.in);
System.out.print("Enter Name :");
ka.setName(kb.nextLine());
System.out.print("Enter Age :");
try
{ //int age = kb.nextInt();
ka.setAge(kb.nextInt());
}
catch (NumberFormatException e)
{System.out.println("Conversion erro:"+ e.getMessage());
}
ka.printdetail();
}
private void setSex(char s){
this.sex = s;
}
public void setName(String uname){
this.oname = uname;
}
public void setAge(String uage){
this.age = Integer.parseInt(uage);
}
public void setAge(int uage){
this.age = uage;
}
public void printdetail(){
System.out.println("Name : "+oname);
System.out.println("Age : "+age);
}
}
จากโค๊ดที่หัดเขียน ข้างบน รบกวนถามว่า
จะป้องกันไม่ให้ user ใส่ อักษรลงไปแทนอายุ ด้วยอย่างไร (ยังใช้วันที่ไม่เป็น กะว่าให้ใส่วันเกิดนั่นแหละ แต่ตอนนี้ยังอ่านไม่ถึง)
อาจประยุกต์ใช้อย่างอื่น เช่น อัตราเงินเดือน หรือรหัสไปรษณีย์ ครับ
ผมพยายามใส่ try catch หรือใส่ผิดไม่แน่ใจ รบกวนด้วยครับ
Java ป้องกันการใส่อักษรแทนตัวเลขผ่านคีย์บอร์ดยังไงครับ
public class Person {
private String oname;
private int age;
private char sex;
public static void main(String[] args) {
Person ka = new Person();
Scanner kb = new Scanner(System.in);
System.out.print("Enter Name :");
ka.setName(kb.nextLine());
System.out.print("Enter Age :");
try
{ //int age = kb.nextInt();
ka.setAge(kb.nextInt());
}
catch (NumberFormatException e)
{System.out.println("Conversion erro:"+ e.getMessage());
}
ka.printdetail();
}
private void setSex(char s){
this.sex = s;
}
public void setName(String uname){
this.oname = uname;
}
public void setAge(String uage){
this.age = Integer.parseInt(uage);
}
public void setAge(int uage){
this.age = uage;
}
public void printdetail(){
System.out.println("Name : "+oname);
System.out.println("Age : "+age);
}
}
จะป้องกันไม่ให้ user ใส่ อักษรลงไปแทนอายุ ด้วยอย่างไร (ยังใช้วันที่ไม่เป็น กะว่าให้ใส่วันเกิดนั่นแหละ แต่ตอนนี้ยังอ่านไม่ถึง)
อาจประยุกต์ใช้อย่างอื่น เช่น อัตราเงินเดือน หรือรหัสไปรษณีย์ ครับ
ผมพยายามใส่ try catch หรือใส่ผิดไม่แน่ใจ รบกวนด้วยครับ