判断字符串是否为数字

 我来答
freechan10
2019-12-03 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:10.8万
展开全部

1、创建测试表;create table test_str(str varchar2(200));

2、插入测试数据;

insert into test_str values('123');

insert into test_str values('12a');

insert into test_str values('123111');

insert into test_str values('<<>>');

3、查询表中数据;select t.*, rowid from test_str t;

4、编写sql,判断每个字符串是否为数字;

select t.*,

       case when not regexp_like(str, '\D') then 1 else 0 end is_num

  from test_str t;

光亮青剑
推荐于2017-11-29 · TA获得超过490个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:159万
展开全部
1.使用Character.isDigit(char)判断

String str = "123abc";
if (!"".equals(str)) {
char num[] = str.toCharArray();//把字符串转换为字符数组
StringBuffer title = new StringBuffer();//使用StringBuffer类,把非数字放到title中
StringBuffer hire = new StringBuffer();//把数字放到hire中

for (int i = 0; i < num.length; i++) {

// 判断输入的数字是否为数字还是字符
if (Character.isDigit(num[i])) {把字符串转换为字符,再调用Character.isDigit(char)方法判断是否是数字,是返回True,否则False
hire.append(num[i]);// 如果输入的是数字,把它赋给hire
} else {
title.append(num[i]);// 如果输入的是字符,把它赋给title
}
}

2.使用类型转换判断

try {
String str="123abc";
int num=Integer.valueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
} catch (Exception e) {
return false;//如果抛出异常,返回False
}

3.使用正则表达式判断

String str = "";
boolean isNum = str.matches("[0-9]+");
//+表示1个或多个(如"3"或"225"),*表示0个或多个([0-9]*)(如""或"1"或"22"),?表示0个或1个([0-9]?)(如""或"7")

4.使用Pattern类和Matcher

String str = "123";
Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher((CharSequence) str);
boolean result = matcher.matches();
if (result) {
System.out.println("true");
} else {
System.out.println("false");
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
折柳成萌
高粉答主

2018-05-23 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5034万
展开全部
方法一:利用正则表达式
public class Testone {
public static void main(String[] args){
String str="123456";
boolean result=str.matches("[0-9]+");
if (result == true) {
System.out.println("该字符串是纯数字");}else{System.out.println("该字符串不是纯数字");}}}方法二:利用Pattern.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testone {
public static void main(String[] args){
String str="123456";
Pattern pattern = Pattern.compile("[0-9]{1,}");
Matcher matcher = pattern.matcher((CharSequence)str);
boolean result=matcher.matches();
System.out.println("该字符串是纯数字");}else{System.out.println("该字符串不是纯数字");}}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-21
展开全部
一个一个字符的看,看看是不是包含在0~9,不就可以吗

int i,flag=0;/*做个标记变量,如果有字符不是数字就让他等于1*/
char str[80];
for(i=0;str[i]!='\0';i++)
if(str[i]<'0'&&str[i]>'9')flag=1;
if(flag==1)printf("不是全数字");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyd3000
2014-01-21 · TA获得超过1549个赞
知道大有可为答主
回答量:1674
采纳率:50%
帮助的人:806万
展开全部
数字?还是整数?
如果严格的判断用 正则表达式 楼上已写

如果只需要能转化成数字,也不用严格要求数字格式,(可能小数给转成整数了) 就用
int.tryparse 或者 decimal.tryparse (看你要什么数字格式了)
楼上也写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式