java - 是否可以检查字符串数组,如果其中的元素可以转换为 int 或 double?
问题描述
我想知道您是否可以检查字符串数组中的元素,看看它们是否可以解析为 int 或 double?我知道您可以尝试解析元素并处理引发的异常,但还有其他方法吗?
解决方案
使用这样的正则表达式-?\d+(.\d+)?
-? --> optional negative symbol
\d+ --> indicates a sequence of one or more numbers
.? --> optional decimal (for floats)
(\d+)? --> optional digits following the decimal
要匹配的命令就像str.matches("-?\\d+(.\\d+)?");
我只是用增强的 for 循环遍历它。String.matches()
是一个内置boolean
函数,所以如果字符串不能转换为浮点数或整数,那么它将返回false
.
double\\
只是为了逃避文字\
字符。
如果您不希望模式匹配类似于的一部分,fewkjnf12.345r52v
那么只需添加一个克拉来指示 float/int 的开头不应有字符串,并在字符串的末尾添加一个美元符号以确保没有任何内容出现之后
IE^-?\d+(.\d+)?$
推荐阅读
- python - *args 参数中间的属性
- office365 - 如何解决 C# 中的 Office 365 SMTP 邮件错误
- powershell - 如何防止 PowerShell 7 Write-Error 从字面上写回文本“Write-Error”?
- python - 具有 tensorflow 召回率超过 100 的神经网络
- css - ng-deep 导致 Angular 中的 mat-select 出现问题
- java - 将方法和参数传递给 Java 中的函数
- c++ - int return 类型的递归函数 c++,即使它的主体上没有返回指令,steel 也能工作
- python - 如何从Django中的属性中单独获取变量的值
- angular - AddApiAuthorization 的默认设置(脚手架 Angular + IdentityServer4)
- java - 单例双重检查锁定在高版本JDK(例如jdk11、14)中是否仍然需要volatile?