PDA

View Full Version : مبتدی: چک کردن این که کاربر عدد وارد کرده نه چیز دیگر



daneshjoo91
جمعه 10 آذر 1391, 18:08 عصر
سلام
برنامه ای نوشتم که انتظار دریافت عدد از کاربر دارد و اگر کاربر چیزی غیر عدد وارد کند برنامه متوقف می شود و پیغام خطای زیر را می دهد :


Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Main.main(Main.java:6)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main (AppMain.java:120)

حالا چه جوری میتونم کاراکتر گرفته شده از کاربرو چک کنم تا کاربر نتونه چیزی جز عدد بفرسته و برنامه اینجوری متوقف نشه؟

Beginner2013
جمعه 10 آذر 1391, 18:26 عصر
سلام،تابع زبر رو به کدتون اضافه و ازش استفاده کنید.

public static boolean isNumeric(String str)
{
try
{
double d = Double.parseDouble(str);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}

rezatashtboland
شنبه 11 آذر 1391, 10:08 صبح
به این روش می تونید چک کنید که ایا عبارت طبق الگو هست یا خیر
اگر طبق الگو باشد true و اگر نباشد false برمیگرداند


public static boolean isNumeric(String str)
{
return str.matches("[0-9]*");
}