java中判断字符是不是数字问题?原题:
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不好判断啊。。高手指点,,不胜感激!!
解决方案 »
- 用递归打印出数组
- 求助:关于jpcap包里的getDevicesList()的问题
- java中TextArea的设置
- 正则 String a="" 匹配啥?
- 请教怎样将数据从csv文件快速导入到Sybase中
- 请问应该如何更新 JTextField里的内容
- 解决了都有分
- 关于JTextArea的问题
- 有两个窗体类Frame1和Frame2,在Frame1中的某个事件中创建并初始化了Frame2(实例名为myframe2),在运行的时候发现有两个Frame2的窗体出现
- 请众位高手帮我看看这段程序错在哪儿?怎样修改?
- 请教关于Class.forName(str).newInstance()的问题:
- char 与 unicode的问题
让系统给你做嘛不就行了
public static boolean isNumberic(String str){
int i =0;
float f = 0;
try{
if(str.indexOf(.) > 0){
f = Float.parseFloat(str);
}
if(str.indexOf(0x) > 0)){
i = Integer.parseInt(str,16);
}
if(str.charAt(0)==0&& str.charAt(1)!= x){
i = Integer.parseInt(str,8);
}
i = Integer.parseInt(str);
}catch(NumberNotFormatException e){
return false;
}
return true;
}
public class Number{
static boolean isNumberic(String num) throws NumberFormatException{
try{
Double.parseDouble(num);
}catch(NumberFormatException e){
return false;
}
return true;
}
public static void main(String[] args){
System.out.println(isNumberic("123"));
System.out.println(isNumberic("-123.45"));
System.out.println(isNumberic("ox12"));
System.out.println(isNumberic("1abc"));
System.out.println(isNumberic("-1a33"));
}
}
public static void main(String[] args) {
System.out.println(isNumberic( "123.3"));
System.out.println(isNumberic( "-123.23"));
System.out.println(isNumberic( "-0x123"));
System.out.println(isNumberic( "12acb3"));
System.out.println(isNumberic( "-aa123"));
System.out.println(isNumberic( "+-+-017"));
System.out.println(+-+011);
}
public static boolean isNumberic(String str) {
return str.matches("([+-]?|(-\\+)*[-]?|(\\+-)*[+]?)(([1-9]\\d*(\\.\\d*)*)|(0[xX]\\p{XDigit}+)|(0[0-7]+))");
}
}
public static boolean isNumberic(String str) {
return str.matches("([+-]?|(-\\+)*[-]?|(\\+-)*[+]?)(([1-9]\\d*(\\.\\d*)*)|(0[xX]\\p{XDigit}+)|(0[0-7]+))");
}
*/
5楼的什么意思?
不懂的去看
http://blog.csdn.net/mfkidt/archive/2006/10/13/1333364.aspx