![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
判断字符串是否为数字
展开全部
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;
展开全部
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");
}
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");
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:利用正则表达式
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("该字符串不是纯数字");}}}
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("不是全数字");
用
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("不是全数字");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数字?还是整数?
如果严格的判断用 正则表达式 楼上已写
如果只需要能转化成数字,也不用严格要求数字格式,(可能小数给转成整数了) 就用
int.tryparse 或者 decimal.tryparse (看你要什么数字格式了)
楼上也写了
如果严格的判断用 正则表达式 楼上已写
如果只需要能转化成数字,也不用严格要求数字格式,(可能小数给转成整数了) 就用
int.tryparse 或者 decimal.tryparse (看你要什么数字格式了)
楼上也写了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询