怎样判断一个字符串里面全是数字?

netdogwww 2003-08-17 08:58:02
有没有这样的函数或是代码,谢谢!
...全文
73 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sundery 2003-08-19
  • 打赏
  • 举报
回复
还是这个好:
public boolean isNumeric() {
String s = this.getInvoiceCode().trim();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
Sundery 2003-08-19
  • 打赏
  • 举报
回复
但是如果这个数字很长,比如说是身份证的号码呢?

18位,怎么判断呢?
whyxx 2003-08-19
  • 打赏
  • 举报
回复
来晚了,UP一下
KillAllError 2003-08-19
  • 打赏
  • 举报
回复
jncz(风一样的男子) 的解法是用正则表达式吧?好像有点浪费。

zhoukai1980(k) 的解法用转换,问题就是负号也能输入。

楼主的解法对每个字符判断,但是有一点不懂
s = this.getInvoiceCode().trim();
你为什么要trim一下呢?
难道中间有空格不允许,而前后有空格就无所谓嘛?

seaman0916(沙漠孤鹰) 拜托抄程序的时候看一看
public boolean IsNumber(String s)
{
s = this.getInvoiceCode().trim(); //这一句,你就不要抄了呀 :)

呵呵,每个人都骂了一顿,凸>_<凸 爽!
不要打我,闪了
pzl686 2003-08-19
  • 打赏
  • 举报
回复
public boolean isNumeric() {
String s = this.getInvoiceCode().trim();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if ((c>'9')||(c<'0')) {
return false;
}
}
return true;
}
梦幻圣者 2003-08-19
  • 打赏
  • 举报
回复
正则表达式:
//判断一个字符串里面全是数字
public static boolean isBigInt(String n)
{
boolean ret = false;
try
{
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(n);
ret = m.matches();
}
catch(Exception e)
{
ret = false;
}

return ret;
}
GeminiFox 2003-08-19
  • 打赏
  • 举报
回复
to :yaray

什么错误?
tangqiuzheng 2003-08-19
  • 打赏
  • 举报
回复
shine333(shine) 说的话,好象没有人听,是怎么加事儿?
iceyou 2003-08-19
  • 打赏
  • 举报
回复
这种判断,最好用正则表达式
wkliangsdqd 2003-08-19
  • 打赏
  • 举报
回复
good!
cd1860 2003-08-19
  • 打赏
  • 举报
回复
看来不用我加答了!:)
  • 打赏
  • 举报
回复
gz
yaray 2003-08-19
  • 打赏
  • 举报
回复
to:seaman0916(沙漠孤鹰)

构造方法有点小错误:)

代码已收藏,日后使用应该不会有版权问题吧 :)
Sundery 2003-08-19
  • 打赏
  • 举报
回复
我也是用上面的人的:)

寒一个....
seaman0916 2003-08-19
  • 打赏
  • 举报
回复
补充一下:

如果你的这个字符串是从 表单传过来的,你可以用javaScript 判断!我觉得更方便,还可及时提醒用户!

还有这个功能很有用,建议写成一个JavaBean,会更好的,更省事!

package beans;

public class JudgeNum
{
public JudgeNum { }
public boolean IsNumber(String s)
{
s = this.getInvoiceCode().trim();
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (!Character.isDigit(c))
{
return false;
}
}
return true;
}
}

在此借用Sundery(Sundery)的例子了(我觉得这个方法好)!
liuyi8903 2003-08-19
  • 打赏
  • 举报
回复
那我也闪吧!
shine333 2003-08-19
  • 打赏
  • 举报
回复
Character.isDigit(char)有那么一点小问题,如果你输入的中有全角数字,
比如9(\uFF19),它仍会返回true,虽然在现实上没有什么大问题,但是在数字解析的时候就会出错,因此还是建议用>='0' && <='9'比较好
huanxiangzhe24 2003-08-18
  • 打赏
  • 举报
回复
想知道第一种解种方法中,用的javascript代码看的不是太懂啊。能解释一下吗?
qiuqiupeng 2003-08-18
  • 打赏
  • 举报
回复
我只看了楼主的,
程序可读性还可以。最好加点注释哦
netdogwww 2003-08-18
  • 打赏
  • 举报
回复
搞定了
public boolean isNumeric() {
String s = this.getInvoiceCode().trim();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
加载更多回复(6)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧