1。java类库自带的方法:
public boolean isNum(String msg){
if(java.lang.Character.isDigit(msg.charAt(0))){
return true;
}
return false;
}
更新:
yining提醒后,我才发现以上方法写得不够到位,现在就改为下面的简单说明了,至于具体的方法实现字符串判断是否数字我就不写了。
java.lang.Character.isDigit(char ch) boolean
isDigit 只能作用于char,所以判断字符串是否为数字,要一个一个拿出char进行判断。
2。用正则表达式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
这两个包,接下来是代码
public boolean isNumeric(String str)
{
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() )
{
return false;
}
return true;
}
(3)
import java.io.*;
class Devil
{
public static void main(String[] args)
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print("请输入一个数:");
String s = (String)br.readLine();
int i = Integer.parseInt(s);
}catch(NumberFormatException nb)
{
System.out.println("不是一个数");
}
catch(IOException io){
}
}
}我想让程序判断输入的字符串是否为数字,如果不是,提示不是,直到输入的是数字为止.我这个程序只能判断一次!一次不是提示完就退出程序了!是捕捉的数字异常!怎么让他循环判断!直到是数字为止!会的帮忙写一下,说明一下,先谢谢了
import java.io.*;
class Test {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
boolean b = true;
try {
while (b) {
System.out.print("请输入一个int长度的整数:");
String s = (String) br.readLine();
for (int j = 0; j < s.length(); j++) {
if (!(s.charAt(j) >= 48 && s.charAt(j) <= 57)) {
System.out.println("您输入的不是纯数字!请重新输入.");
b = true;
break;
} else {
b = false;
}
}
if (!b) {
int i = Integer.parseInt(s);
System.out.println("您输入的是数字:" + i);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}