1

首先,我想说这是一个家庭作业,我只是在寻找建议。不回答!我非常坚定地学习并擅长编程,这不是来自其他人在做你的工作。指出我正确的方向,我们将不胜感激!

请注意,我已经在互联网上搜索了解决方案,但没有找到适合我需要的解决方案。我无法使用任何高级方法。

该程序允许用户输入范围的开始和结束编号。起始编号必须能被 10 整除,结束编号必须能被 10 整除且与起始编号不同。用户只能使用 0 - 1000 之间的数字,并且不允许在键盘上输入任何其他字符。因此,如果他们点击“a”或“1200”,程序应该循环返回,直到输入了一个有效的条目。

目前我坚持只允许输入一个整数。我的代码的特定部分发布在下面:

while(errorLoop != true){
        System.out.println("Enter the Starting Number of the Range (ex. 10,70,100)");
        startNum = kb.nextInt();
        System.out.println("Enter the Ending Number of the Range (ex. 10,70,100)");
        endNum = kb.nextInt();
        if(startNum % 10 == 0 && endNum % 10 == 0){
            errorLoop = true;
        }else{
            errorLoop = false;
            System.out.println("Start and End of range must be divisible by 10\n");
            System.out.println("Please try again (ex. 10,70,100)\n");
        }
    }

我只发布了与问题相关的部分代码。如果您必须知道程序的要点,则数字范围将按质数排序并输出为表格格式,其中每行以可被十整除的数字结尾。非质数将打印为“-”。

前任。71 - 73 - - - - - 79 | 80 \n 并且无论范围多大,它都会继续。

4

4 回答 4

3

我建议您使用nextLine()而不是nextInt(). 然后,您可以首先确保它可以解析为 Integer(检查Integer JavaDoc page),然后该数字符合您的要求。

编辑
要处理输入不是数字的情况,您可以从几个方向进行。我更喜欢在使用正则表达式进行实际解析调用之前检查输入。AString只包含数字会匹配"^\\d+$"(查看此链接以获得出色的正则表达式教程),并且String API中有一个方便的方法。

于 2012-09-26T20:56:11.437 回答
0

您始终可以使用正则表达式解析您的输入,以确保它们是数字:

int number = Integer.parseInt(kb.nextLine().replaceAll(”[^\\d]“, “”));

输入:

1blahblah2moretext3

生产编号:

 123
于 2012-09-26T21:02:26.980 回答
0

编写一个方法来检查输入的数字是否为数字。

  boolean method(String num) {
       boolean retValue;
      try {
        // check out the Integer API for the methods related to parse an int
          retvalue=true;
        }
      catch(ParseException ex) {
         retvalue=false;
      } 
     return retvalue;    
   } 
于 2012-09-26T21:10:03.757 回答
0

尝试在您的程序中使用以下异常,确保使用 InputMismatchException 并导入它。

   try {
        System.out.println("Enter the value of a"); 

        int a = scanner.nextInt();


        System.out.println("Enter the value of b"); 
        int b = scanner.nextInt();
        int c = a+b;
        System.out.println("The answer is " +c);
        } 


    catch (InputMismatchException exception) 
    //Add import java.util.InputMismatchException; at the top
        {
        System.out.println("Error - Enter a integer");
        }
于 2014-03-16T12:58:27.333 回答