我只知道用Integer.parseInt(String s)来实现string到integer的转换,但是这个函数还不够方便,第一,他产生runtime exception而不是checked exception,这样如果没有处理异常编译器也没有提示,第二,每次都要try {} catch (NumberFormatExcpetion){}很不方便。类库中或者其他类库中是否有一个简单一点的函数,比如:
class ErrorCheck {
private boolean hasError;
public boolean getHasError(){
return hasError;
}
}
int TryStrToInt(String s; ErrorCheck ec);
double TryStrToFloat(String s; ErrorCheck ec);
如果转换出错,ErrorCheck.getHasError()返回true?
class ErrorCheck {
private boolean hasError;
public boolean getHasError(){
return hasError;
}
}
int TryStrToInt(String s; ErrorCheck ec);
double TryStrToFloat(String s; ErrorCheck ec);
如果转换出错,ErrorCheck.getHasError()返回true?
public static boolean isLong(String str) {
return str.matches("^[\\+-]?[\\d]+$");
}
public static boolean isDouble(String str) {
return str.matches("^[\\+-]?[\\d]+(\\.\\d+)?$");
}
在STRING类中有一个方法
public class Q
{
public static void main(String[] args)
{
String s1="1234";
String s2="SS123";
if(s1.matches("(-|\\+)?\\d+")){
System.out.println("YES");
}else{
System.out.println(s1+"is NOT INT");
}
if(s2.matches("(-|\\+)?\\d+")){
System.out.println("YES");
}else{
System.out.println(s2+"is NOT INT");
}
}
}
matches(STRING)这个方法参数是正则表达式前面的(-|\\+)?因为+号有特殊含意所以要转译,表示一个或没有\\d+就是一个或多个
想不到答案还是:没有现存的共用函数。然而,这可是基本函数阿。有点感叹,这段时间学习java,觉得java有很多优秀的地方,类库也很丰富,可是还是有那么一些基本函数是没有提供的,真有点不可思议,难道这么多java程序员这么多年都在写代码处理这些基本的问题吗?
但也是缺点,因为虽然有了选择真好,但有了太多的选择并不是件好事!!!这点羡慕 .net 的,大家弄好几个就可以了,连工具都基本统一。
不象java,百花齐放,我都不知道该采哪一朵!结果都没采到!
在此谢谢各位了