如何将字符串转换为float并避免在java中使用try / catch?

有一些情况我需要将字符串转换为浮点数或其他一些数值数据类型,但有可能获得一些不可转换的值,如“ – ”或“/”,我无法预先验证所有值以删除他们.
我想避免使用try / catch这个问题,还有其他方法在java中进行正确的转换吗?类似于C#TryParse的东西?

解决方法

我能想到的最简单的事情是java.util.Scanner.但是,此方法需要为每个String提供一个新的Scanner实例.
String data = ...;
Scanner n = new Scanner(data);
if(n.hasNextInt()){//check if the next chars are integer
  int i = n.nextInt();   
}else{

}

接下来,您可以编写一个正则表达式模式,用于检查字符串(复合体失败太大的值),然后在检查字符串调用Integer.parseInt().

Pattern p = Pattern.compile("insert regex to test string here");
String data = ...;
Matcher m = p.matcher(data);
//warning depending on regex used this may 
//only check part of the string
if(m.matches()){
  int i = Integer.parseInt(data);
}

但是这两个都解析了两次字符串,一次测试字符串,第二次解析值.根据您获取无效字符串的频率捕获异常可能会更快.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效