//Ver si un String contiene un numero
public static boolean verificarNumeros(String numOlet){
boolean num=false;
if((numOlet.contains("0")||numOlet.contains("1")||numOlet.contains("2"))||numOlet.contains("3")||numOlet.contains("4")||numOlet.contains("5")||numOlet.contains("6")||numOlet.contains("7")||numOlet.contains("8")||numOlet.contains("9")||numOlet.contains("!")){
System.out.println("tiene numeros");
num=true;
}
return num;
}
代码
结果
数字
细绳
解释
使用Integer.parseInt()函数抛出的可能异常,
try/catch
将字符串转换为数字的过程包含在 a 中就足够 了。当发生类型异常
NumberFormatException
时,我们确定转换失败,因此尝试转换的字符串不是数字,返回FALSE
. 否则,它返回一个TRUE
.看一个例子
如果您不使用任何提供该功能的外部库,则最好定义一个实用程序类,其中包含一个执行检查的方法,类似于:
它不存在的原因
TryParse
是因为它已经被暗示了。如果您检查原型,
Integer.parseInt
您可以看到该方法在传递没有有效整数的字符串时抛出异常。NumberFormatException是一个检查异常。Java 有两种类型的异常:已检查和未检查,第一种类型总是强制将调用与
try...catch
抛出它的方法的块一起括起来,而第二种类型则不会。如果我们在C#中解析流程
Java中的等价物是
如您所见
TryParse
,它是隐式的,因为它parseInt
会引发异常,从而自动更改程序的流程。附言
不鼓励任何实现,
TryParse
因为与C#不同, Java中的原始类型总是按值传递,这意味着所提出的方法需要解析字符串两次,如果字符串实际包含整数则返回一次,另一次获取其价值,这是荒谬的。检查字符串是否只有数字作为字符的另一种方法是始终检查字符串并检查它以避免异常。
编辑:它仅对正数有效,在负数的情况下,您必须额外购买负数符号。