首页 > 解决方案 > 是否可以检查字符串数组,如果其中的元素可以转换为 int 或 double?

问题描述

我想知道您是否可以检查字符串数组中的元素,看看它们是否可以解析为 int 或 double?我知道您可以尝试解析元素并处理引发的异常,但还有其他方法吗?

标签: javaarraysstringintdouble

解决方案


使用这样的正则表达式-?\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+)?$

请访问此站点以查看正在运行的正则表达式


推荐阅读