java 检测string是否全是数字的思路

最近写程序看到需要对一个string进行检测,例如规定string必须是全数字的字符组成的,诸如此类。

在网上看到网友们提供的思路大多都是正则表达式,但是我觉得对于一些简单的检测需求,没必要进行这样规模的复杂检测。

举个例子:java swing编程时,要求界面上一个JTextField输入必须是纯数字的,那么可以用如下的思路来检测。

public class asd {
	public static void main(String[] args) {
		byte[] bt;
		String test = "12345678";//要检测的字符串
		int temp;// 中转变量
		int logo = -1;// 标志,如果-1,则表示string是一个数字串.如果0,则表示不符合规范
		bt = test.getBytes();// 将string转化成byte数组
		for (int i = 0; i < bt.length; i++) {
			temp = bt[i] - 48;// int范围大于byte,所以可以直接赋值,减去48可以使原来的数字字符变成0-9的数字
			if (temp < 0 || temp > 9)//temp不符合检测,表示string出现了非数字字符
			{
				logo = 0;//让标志等于0
				break;// 若发现非数字字符出现,那么立刻中断查询
			}
		}
		if (logo == -1) {
			System.out.println("全是数字");
		} else {
			System.out.println("不全是数字");
		}
	}
}

如果是字符“0”-“9”,那么转化成byte类型以后,再减去48,一定是0-9的数字。所以可以利用这个特点来对string进行检测。

可以对test变量反复赋值检测程序是否可行,最后结果表明这个思路是可以的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值