例:
String a = "1235.2342";
String b = "782";
String c = "ss123";可以用下面进行判断是否是数值,但是能不能判断出 如果是数值,就返回是什么类型呢(int 或者 double)。//判断是否是字符
public static boolean isNum(String str){
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}Stringjava判断intdouble
String a = "1235.2342";
String b = "782";
String c = "ss123";可以用下面进行判断是否是数值,但是能不能判断出 如果是数值,就返回是什么类型呢(int 或者 double)。//判断是否是字符
public static boolean isNum(String str){
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}Stringjava判断intdouble
解决方案 »
- 数据库问题
- 页面上显示多张二进制图片
- jacob操作word时候出现的问题求教大神
- 才接触Java语言两个星期,请问下在前期的任务~!
- 想从事做JAVA软件开发,但是没有经验,基础也不怎么好,怎么办!
- 请各位帮忙看下为什么这个循环会有问题?
- 基础问题:final问题.高手指教!!谢谢!~~
- 请教在Linux8.0下安装JBuilder7企业版的方法?
- Java的稳定性
- 为何JButton在application中用setToolTipText可以,但在applet中用就没效?知道如何解决的请进来拿分!
- 像这样的设计是一种怎样的设计模式?
- 求理解data[ptr++]和data[ptr+1]有什么不同,为什么后者造成死循环,下标一直是0
public static boolean isDigits(String str) {
return str.matches("[-+]?[0-9]*");
}
/**
* 判断字符串是否为数字
*
* @param string
* @return boolean
*/
public static boolean isNumber(String string)
{
for (int i = 0; i < string.length(); i++)
{
if (!Character.isDigit(string.charAt(i)))
{
return false;
}
}
return true;
}
我想返回一个double 或者 int 的标记,直接判断出来的。例如:
如果是 整形 return 1; 如果是 double return 2; 如果只是字符串 return 0;这样的。。能帮帮我么。
public static int checkString(String str) {
if (isDigits(str))
return 1;
else if (isNum(str))
return 2;
else
return 0;
}
就不能用indexOf来判断了。。
就不能用indexOf来判断了。。
如果是数值的话,你再利用indexOf(".")来判断是int 或者 double,你这个就不是数值呀
就不能用indexOf来判断了。。
你举的这个例子,它不是数值,不是直接返回是string类型了么,根本就不往下走了呀
就不能用indexOf来判断了。。
如果是数值的话,你再利用indexOf(".")来判断是int 或者 double,你这个就不是数值呀
呃。。是这样的 d="1992.04.06" 这样的。。不能用indexOf()来判断
就不能用indexOf来判断了。。
如果是数值的话,你再利用indexOf(".")来判断是int 或者 double,你这个就不是数值呀
呃。。是这样的 d="1992.04.06" 这样的。。不能用indexOf()来判断
1992.04.06这个也不是数值吧?
* 正则表达式可能不严谨(写的比较唐突)
* @param source
* @return 返回0表示非数值,返回1表示是int型,返回2表示是double型
*/
public static int type(String source){
int result = 0;
String regex1 = "^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$";
boolean flag1 = source.matches(regex1);
if(flag1){
String regex2 = "^[-+]?([0-9]+)$";
boolean flag2 = source.matches(regex2);
if(flag2){
result = 1;
}
else{
result = 2;
}
}
return result;
}
楼主试试效果吧,写的比较唐突,在我这里实验,a,b,c三个字符串分别返回2,1,0 。
Pattern pattern = Pattern.compile("^-?[1-9]\\d*$");
Matcher matcher = pattern.matcher(str);
if(matcher.find()) {
System.out.println("整形");
}else if(Pattern.compile("^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$").matcher(str).find()){
System.out.println("浮点型");
}else {
System.out.println("字符型");
}
就不能用indexOf来判断了。。
如果是数值的话,你再利用indexOf(".")来判断是int 或者 double,你这个就不是数值呀
呃。。是这样的 d="1992.04.06" 这样的。。不能用indexOf()来判断
1992.04.06这个也不是数值吧?
哦 明白了 是判断出来是否是数值后 然后用 if(indexOf(".") == -1){return int}else{return int} 明白了。。脑子好混。。
就不能用indexOf来判断了。。
如果是数值的话,你再利用indexOf(".")来判断是int 或者 double,你这个就不是数值呀
呃。。是这样的 d="1992.04.06" 这样的。。不能用indexOf()来判断
1992.04.06这个也不是数值吧?
哦 明白了 是判断出来是否是数值后 然后用 if(indexOf(".") == -1){return int}else{return int} 明白了。。脑子好混。。
有的时候累了就该出去转一圈,老在那边想会钻牛角尖的,很高兴帮助到你了,记得给分呀