输入字符串,只能输入数字,如果输入了字母,如何识别 可以用正则表达式啊,http://www.computerworld.com.cn 上有一篇文章Java正则表达式详解很不错。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你用Integer.parserToInt(String value)如果抛出异常了就说明不是数字反之就是了啊正则表达太慢了 有一个键盘按下事件,通过查按下键的ascii码的值把非数值排除 try{Integer.parserToInt(String value)}catch(Exception e){}如果抛出异常了就说明不是数字 如下是一个只允许输入整数的例子,如果要求可以输入小数,稍做修改即可class IntDocument extends PlainDocument { public void insertString(int offs, String str,AttributeSet attr) throws BadLocationException { if (str == null || str.trim().length() == 0) return; boolean insertflag = true; StringBuffer sb = new StringBuffer(getText(0, getLength())); sb.insert(offs, str); try { Integer.parseInt(sb.toString()); }catch(NumberFormatException ex) { insertflag = false; } if (insertflag) super.insertString(offs, str, attr); }}JTextField textf = new JTextField();textf.setDocument(new IntDocument()); 注意,要做输入限制必须在Document中处理如果只监听键盘或者鼠标事件的话,有一些情况如复制不能处理 可以用正则表达式啊try{Integer.parserToInt(String value)}catch(Exception e){}如果抛出异常了就说明不是数字 异常机制是为了捕获异常和错误的,不是让你们拿来做判断的。另外,异常机制用来判断,绝对是最慢的,正则表达式才正解。假设有char a;要判断它是否为数字,只要:if(a>='0' && a<='9') { System.out.println("true");}else { System.out.println("false");}如果是字符串,可以使用charAt方法遍历该字符串来获得结果,一旦有一个CHAR不为数字就返回FALSE。下面是使用正则表达式:假设有字符串string, if(Pattern.matches("[0-9]*", string)) { System.out.println("true");}else { System.out.println("false");}到底是哪个简单,一目了然了吧。 几个说明:正则表达式处理类Pattern是JDK1.4才有的(我们要用JDK1.3,不能用,sigh)另外:上面的string不能为null,如果为空字符串(即:"")也会返回true,可以根据需要来判断这种情况是否为真 判断一下每一个字母>0并且<9function onlyNum(inputStr) { var flag=true; for (var i = 0; i < inputStr.length; i++) { var oneChar = inputStr.charAt(i) if (oneChar < "0" || oneChar > "9") { flag=false; } } return flag;} <SCRIPT LANGUAGE="JavaScript"><!--function onlyNum(inputStr) { var flag=true; for (var i = 0; i < inputStr.length; i++) { var oneChar = inputStr.charAt(i) if (oneChar < "0" || oneChar > "9") { flag=false; } } return flag;}//--></SCRIPT> 如果你是在Appliction或是Applet中的话用 flyx(枫林一笑) 的方法的方法最好!如果是在Jsp中,你就不必费神了,在DreamWeaver MX中有现成的JavaScript,套用上就行了! 可以再改一下提示信息! 更好一些! "设计"--->"行为"---"检查表单" ...... 当然如果你的javaScript比较好,就用 lymkelly(柳叶眉) 的! 我喜欢 DreamWeaver MX ! 方便!^_^ to 楼上,使用异常机制来判断是最差的。另外,在页面中也是可以使用正则表达式的,直接对<input type='text'>的onkeypress、onpaste、ondrop三个事件进行过滤来控制输入的字符,通过使用不同的正则表达式来对不同要求的输入进行控制,比如只输入数字字符,输入浮点型的数据等等。 如果是页面的话<input type="text" name="yzm" size="6" maxlength="4" class="put" onkeyup='this.value=this.value.replace(/\D/gi,"")'> 有关BufferedReader的几个问题 编译显示无问题,可是运行时却出障碍了 求帮忙 请高手帮我看看这一段多线程的代码!!急!在线等! java使用图标,双击打开程序 数据库导入问题 单独的类之间的,参数传递问题,急呀,在线等,跪求高手指点....... 一个简单的类型转换问题,请高手帮忙解决!---thanks 为什么我听不到声音,请高手帮忙!!!! embedded 嵌入式tomcat 如何把ByteBuffer中的字符串转换成String类型? 有关多个文件编译和package 【JAVA视频教学】 下载 ★★★
如果抛出异常了就说明不是数字
反之就是了啊
正则表达太慢了
Integer.parserToInt(String value)
}
catch(Exception e)
{
}
如果抛出异常了就说明不是数字
class IntDocument extends PlainDocument {
public void insertString(int offs, String str,AttributeSet attr) throws BadLocationException {
if (str == null || str.trim().length() == 0) return;
boolean insertflag = true;
StringBuffer sb = new StringBuffer(getText(0, getLength()));
sb.insert(offs, str);
try {
Integer.parseInt(sb.toString());
}catch(NumberFormatException ex) {
insertflag = false;
}
if (insertflag)
super.insertString(offs, str, attr);
}
}JTextField textf = new JTextField();
textf.setDocument(new IntDocument());
如果只监听键盘或者鼠标事件的话,有一些情况如复制不能处理
Integer.parserToInt(String value)
}
catch(Exception e)
{
}
如果抛出异常了就说明不是数字
不是让你们拿来做判断的。
另外,异常机制用来判断,绝对是最慢的,正则表达式才正解。假设有char a;
要判断它是否为数字,只要:
if(a>='0' && a<='9') {
System.out.println("true");
}else {
System.out.println("false");
}如果是字符串,可以使用charAt方法遍历该字符串来获得结果,一旦有一个CHAR不为
数字就返回FALSE。下面是使用正则表达式:
假设有字符串string, if(Pattern.matches("[0-9]*", string)) {
System.out.println("true");
}else {
System.out.println("false");
}到底是哪个简单,一目了然了吧。
(我们要用JDK1.3,不能用,sigh)
另外:
上面的string不能为null,
如果为空字符串(即:"")也会返回true,可以根据需要来判断这种情况是否为真
var flag=true;
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
flag=false;
}
}
return flag;
}
<!--
function onlyNum(inputStr) {
var flag=true;
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
flag=false;
}
}
return flag;
}
//-->
</SCRIPT>
当然如果你的javaScript比较好,就用 lymkelly(柳叶眉) 的!
我喜欢 DreamWeaver MX ! 方便!^_^
使用异常机制来判断是最差的。
另外,在页面中也是可以使用正则表达式的,直接对<input type='text'>的
onkeypress、onpaste、ondrop三个事件进行过滤来控制输入的字符,通过使用不同
的正则表达式来对不同要求的输入进行控制,比如只输入数字字符,输入浮点型的数据等等。