相关疑难解决方法(0)

检查String是否表示Java中的整数的最佳方法是什么?

我通常使用以下习惯来检查String是否可以转换为整数.

public boolean isInteger( String input ) {
    try {
        Integer.parseInt( input );
        return true;
    }
    catch( Exception e ) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

它只是我,还是看起来有点hackish?什么是更好的方式?


看看我的回答(基于CodingWithSpike早期答案基准),看看为什么我改变了我的立场并接受了Jonas Klemming对这个问题的回答.我认为这个原始代码将被大多数人使用,因为它实现起来更快,更易于维护,但是当提供非整数数据时,它会慢一个数量级.

java string int

203
推荐指数
11
解决办法
16万
查看次数

如何检查字符串是否可解析为double?

是否有一种本机方式(最好不要实现自己的方法)来检查字符串是否可解析Double.parseDouble()

java string floating-point parsing

66
推荐指数
6
解决办法
13万
查看次数

可以尝试/捕获一些东西只是为了检查是否抛出异常?

尝试使用无用的东西只是为了查看此代码是否抛出特定异常是一种好方法吗?
我想在抛出异常时做一些事情,否则什么也没做.

try {  
    new BigDecimal("some string"); // This do nothing because the instance is ignored  
} catch (NumberFormatException e) {  
    return false; // OK, the string wasn't a well-formed decimal  
}  
return true;
Run Code Online (Sandbox Code Playgroud)

要测试的前提条件太多,构造函数BigDecimal()总是检查它们,所以这似乎是最简单的方法.

java exception

51
推荐指数
4
解决办法
2878
查看次数

如何使用正则表达式检测浮点数

什么是处理浮点数的好正则表达式(即像Java的Float)

答案必须符合以下目标:

 1) 1.  
 2) .2   
 3) 3.14  
 4) 5e6  
 5) 5e-6  
 6) 5E+6  
 7) 7.e8  
 8) 9.0E-10  
 9) .11e12  
Run Code Online (Sandbox Code Playgroud)

总之,它应该

  • 忽略先前的迹象
  • 要求小数点左边的第一个字符为非零
  • 允许小数点两边有0位或更多位数
  • 允许没有小数点的数字
  • 允许科学记数法
  • 允许大写或小写'e'
  • 允许积极或消极的指数

对于那些想知道的人,是的,这是一个家庭作业问题.我们在编译器的CS课程中收到了这个作业.我已经把我的答案交给了班级,并将其作为这个问题的答案发布.

[Epilogue]我的解决方案没有得到充分的信任,因为它没有处理小数点左边的超过1位数.赋值确实提到了处理Java浮点数,即使这些示例都没有小数点左边的1位数.我会在自己的帖子中发布已接受的答案.

regex floating-point

14
推荐指数
3
解决办法
4万
查看次数

正则表达式解析国际浮点数

我需要一个正则表达式来获取可以的数值

111.111,11

111,111.11

111,111
Run Code Online (Sandbox Code Playgroud)

并分隔整数和小数部分,以便我可以使用正确的语法存储在DB中

我尝试([0-9]{1,3}[,.]?)+([,.][0-9]{2})?没有成功,因为它没有检测到第二部分:(

结果应如下所示:

111.111,11 -> $1 = 111111; $2 = 11
Run Code Online (Sandbox Code Playgroud)

regex internationalization

6
推荐指数
1
解决办法
4182
查看次数