我想判断一个字符串中是否含有数字,如果有数字则提出数字如果没有则赋别的值代码如下: ........
String zhekou = rsCol[i][4];
String zkStr ="";
int zkLen = zhekou.indexOf("折") ;
if (zkLen < 0) //无折
zkStr = "详情" ;
else //有“折”
{
int num = zhekou.indexOf("^\d+$") ; //判断是否有数字
if (num < 0) //无数字
zkStr = "详情" ;
else //有数字
{
int dot = zhekou.lastIndexOf(".") ;
if (dot > 0) //有小数点
zkStr = zhekou.substring(dot-1,dot+2) + "折" ;
else //无小数点有数字
zkStr = zhekou.substring(num,num+1) + "折" ;
} }为什么总是报错,那位高手帮我看看是不是我的正则表达式写的有问题还是什么原因,谢谢
String zhekou = rsCol[i][4];
String zkStr ="";
int zkLen = zhekou.indexOf("折") ;
if (zkLen < 0) //无折
zkStr = "详情" ;
else //有“折”
{
int num = zhekou.indexOf("^\d+$") ; //判断是否有数字
if (num < 0) //无数字
zkStr = "详情" ;
else //有数字
{
int dot = zhekou.lastIndexOf(".") ;
if (dot > 0) //有小数点
zkStr = zhekou.substring(dot-1,dot+2) + "折" ;
else //无小数点有数字
zkStr = zhekou.substring(num,num+1) + "折" ;
} }为什么总是报错,那位高手帮我看看是不是我的正则表达式写的有问题还是什么原因,谢谢
试试
int num = zhekou.indexOf("\d+$")
boolean a = zhekou.matches("\\d+$");
试试
你的数据形式是什么,你这样的正则表达式符合你的数据吗
zkStr = zhekou.substring(num,num+1) + "折" ;
应该怎么改啊?
String zkStr ="";
int zkLen = zhekou.indexOf("折") ;
if (zkLen < 0) //无折
zkStr = "详情" ;
else //有“折”
{
zhekou = zhekou.substring(0,zkLen);
if(zhekou.matches("^\\D*\\d+.\\d+$")){
zkStr = zhekou.substring(zkLen-3,zkLen)+"折";
}else if(zhekou.matches("^\\D*\\d+$")){
zkStr = zhekou.substring(zkLen-1,zkLen)+"折";
}else{
zkStr = "详情" ;
}
}这么有规律的话,可以用上面这个,不过必须是8.5折,不能是8.55折
zkStr = "详情" ; 改成 if (zkLen < 0) //无折{ zkStr = "详情" ;} 试试,你的数据中会不会有多个数据?