我想知道您是否可以检查字符串数组中的元素,以查看是否可以将它们解析为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的开头不应包含字符串,而在末尾加一个美元符号字符串以确保没有任何内容]
即^-?\d+(.\d+)?$