-2

我正在尝试运行一些检查输入是否为整数的代码。此方法从 main 调用并尝试将输入转换为整数。如果失败,它将打印一条错误消息,然后我希望代码停止。调用的方法如下:

尝试编译时会出现错误:

缺少返回语句}

关于如何做到这一点的任何想法?

public static int checkCharactersPerLineInput(String inputNumber){
    try{
        int length = Integer.parseInt(inputNumber);
        return length;
        }
        catch (Exception e) {
            System.out.println("Error with input... Not an integer please 
            try again.");
            System.exit();
        }
}
4

4 回答 4

0

如果失败,您可以使用返回 null 值的技巧。但是您必须将返回类型更改为 java.lang.Integer

于 2019-09-22T00:10:52.013 回答
0

public static int checkCharactersPerLineInput(String inputNumber){

所有函数和方法都必须返回一个值(你的方法没有,所以它给出了一个错误),除非它是一个 void 或构造函数。

任何一个

A)在您的方法中添加一个return someInteger语句checkCharactersPerLineInput

B) 替换intvoid

于 2019-09-21T23:04:36.320 回答
0

返回值的方法的要点是它们返回值,因此,无论您的方法在哪里实现,都需要一个适当的整数。解决此问题的一种方法可能是放入return null;catch 部分,并且无论在何处调用您的方法,您首先需要检查

if (checkCharactersPerLineInput(str)!=null){
    //your code
}

如果您只对字符串的数字感兴趣,您还可以替换int length = Integer.parseInt(inputNumber);int length = Integer.parseInt(inputNumber.replaceAll("[^1234567890]", "");which 将删除字符串中不是数字的每个字符。然后,您还可以从代码中删除trycatch短语。

于 2019-09-21T23:05:00.113 回答
0

Any method that is not declared void must contain a return statement with a corresponding return value, like this:

return returnValue;

Since your method has a return type 'int', you need to have an integer return value. If you don't want to return anything, just use void.

You might want to read more about it here.

于 2019-09-21T23:44:18.293 回答