java中判断字符是不是数字问题?
原题:publicclassHH{publicstaticbooleanisNumberic(Stringstr){写函数。。System.out.println(isN...
原题:
public class HH {
public static boolean isNumberic(String str) {
写函数。。
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
得出结果要是:
ture
ture
ture
false
false
我做了两次都有一点问题:
第一次:
public class HH {
public static boolean isNumberic(String str) {
if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if (Character.isDigit(str.charAt(i)) == false) {
return false;
}
}
return true; }
public static void main(String[] args) {
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
只能第一个ture,其他的是false了
第二次:
public class HH {
public static boolean isNumberic(String num) {
try {
Double.parseDouble(num);
return true;
}
catch (NumberFormatException e) {
return false;
}
}
public static void main(String[] args) {
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
第3个又判断不准了。。我知道 我的方法有很多缺陷,就是0x123不好判断啊。。高手指点,,不胜感激!! 展开
public class HH {
public static boolean isNumberic(String str) {
写函数。。
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
得出结果要是:
ture
ture
ture
false
false
我做了两次都有一点问题:
第一次:
public class HH {
public static boolean isNumberic(String str) {
if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if (Character.isDigit(str.charAt(i)) == false) {
return false;
}
}
return true; }
public static void main(String[] args) {
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
只能第一个ture,其他的是false了
第二次:
public class HH {
public static boolean isNumberic(String num) {
try {
Double.parseDouble(num);
return true;
}
catch (NumberFormatException e) {
return false;
}
}
public static void main(String[] args) {
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.23"));
System.out.println(isNumberic("0x123"));
System.out.println(isNumberic("12acb3"));
System.out.println(isNumberic("-aa123"));
}
}
第3个又判断不准了。。我知道 我的方法有很多缺陷,就是0x123不好判断啊。。高手指点,,不胜感激!! 展开
5个回答
展开全部
public static boolean isNumberic(String str) {
if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if (Character.isDigit(str.charAt(i)) == false) {
return false;
}
}
return true; }
是你写的这个方法存在问题
你是把字符串拆分成字符数依次判断一个字符串里面的数字。
当遇到Character.isDigit(str.charAt(i)) == false 的时候就返回了,肯定是false,只有123 能return true;
-123.23 第一个遇到“-”号,显然,不是数字,返回false
0x123 遇到字母“O”,肯定返回false
“12acb3” 遇到“a”--false
“-aa123” 遇到“-”--false
if (str == null) {
return false;
}
int sz = str.length();
for (int i = 0; i < sz; i++) {
if (Character.isDigit(str.charAt(i)) == false) {
return false;
}
}
return true; }
是你写的这个方法存在问题
你是把字符串拆分成字符数依次判断一个字符串里面的数字。
当遇到Character.isDigit(str.charAt(i)) == false 的时候就返回了,肯定是false,只有123 能return true;
-123.23 第一个遇到“-”号,显然,不是数字,返回false
0x123 遇到字母“O”,肯定返回false
“12acb3” 遇到“a”--false
“-aa123” 遇到“-”--false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-12-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
参考如下代码即可发现:
public class T {
public static void main(String[] args) {
System.out.println(isInt("12345"));
System.out.println(isInt("abc"));
System.out.println(isInt2("12345"));
System.out.println(isInt2("abc"));
}
public static boolean isInt(String string) {
return string.matches("\\d+");
}
public static boolean isInt2(String string) {
try {
Integer.parseInt(string);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以采用一个正则表达示来验证.
System.out.println(("123").matches("[0-9]*"));
.
.
.
这样在你以后的开发当中会更实用一些,希望对你有所帮助!
System.out.println(("123").matches("[0-9]*"));
.
.
.
这样在你以后的开发当中会更实用一些,希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单个字符
char ch='5';
if(ch>='0'&&ch<='9'){//数字
}
char ch='5';
if(ch>='0'&&ch<='9'){//数字
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询