我正在开发一个程序,其中用户输入是一个混合字符串和整数的数组.例如:
狗10 23猫青蛙22大象
我应该在不改变每个索引的类型的情况下对这个数组进行排序.所以输出将是;
猫10 22狗大象23青蛙
从控制台读取该行后,我正在使用字符串标记器来遍历每个元素.之后,我正在尝试parseInt,如果它抛出异常,我假设它是一个字符串,否则它是一个整数.有没有更好的方法来确定令牌是否是数字?
谢谢.
依赖于程序逻辑的异常被认为是不好的做法,因为异常很慢.相反,您可以使用正则表达式.
Matcher numericalMatcher = Pattern.compile("^-?\\d+$").matcher(token);
if( numericalMatcher.matches() ) {
// Token is a number
} else {
// Token is not a number
}
Run Code Online (Sandbox Code Playgroud)
请参阅http://docs.oracle.com/javase/1.6.0/docs/api/java/util/regex/Pattern.html和http://docs.oracle.com/javase/1.6.0/docs/api /java/util/regex/Matcher.html
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |