Java parseint(在扫描器输入上),我还想限制用户只能输入0到100范围内的数字

Java parseint(在扫描器输入上),我还想限制用户只能输入0到100范围内的数字,java,parsing,integer,java.util.scanner,Java,Parsing,Integer,Java.util.scanner,大家好,我这里有点小问题, 首先,我想将来自scanner的字符串解析为int,以便以后使用IF语句。 代码如下所示 List<String> list = new ArrayList<String>(); Scanner numbers = new Scanner(System.in); do { System.out.println("Current list is " + list); System.out.prin

大家好,我这里有点小问题, 首先,我想将来自scanner的字符串解析为int,以便以后使用IF语句。 代码如下所示

List<String> list = new ArrayList<String>();
    Scanner numbers = new Scanner(System.in);

    do {
        System.out.println("Current list is " + list);
        System.out.println("Add more? (y/n)");

        if (numbers.next().startsWith("y")) 
        {
            if(Integer.parseInt(numbers)> 0 && Integer.parseInt(numbers) < 101)
            {// i get error on above line, and im kinda lost here


                System.out.println("Enter : ");
                list.add(numbers.next());
            }
        }
        else
        {            
            break;                
        }           
    }while (true);
List List=new ArrayList();
扫描仪编号=新扫描仪(System.in);
做{
System.out.println(“当前列表为”+列表);
System.out.println(“添加更多?(y/n)”);
if(numbers.next().startsWith(“y”))
{
if(Integer.parseInt(数字)>0&&Integer.parseInt(数字)<101)
{//我在上面的一行上出错了,我在这里有点迷路了
System.out.println(“输入:”);
list.add(number.next());
}
}
其他的
{            
打破
}           
}虽然(正确);
感谢您的帮助,希望我能把自己和我的问题说清楚

编辑:

do{
System.out.println(“当前列表为”+列表);
System.out.println(“添加更多?(y/n)”);
if(numbers.next().startsWith(“y”))
{                               
系统输出打印(“输入:”);
System.out.flush();
final int n=Integer.parseInt(numbers.next());
如果(n>0&&n<101)
{
列表。添加(n);
//这就是我得到错误的地方。
//找不到适用于add(int)的方法
//方法java.util.List.add(int,java.lang.String)不适用
//(实际参数和形式参数列表长度不同)
//方法java.util.List.add(java.lang.String)不适用
//(实际参数int无法转换为java.lang.String
//通过方法调用转换)。
//日志末尾
}
其他的
{
System.out.println(“您输入的数字超过0-100之间的范围”);
} 
}
其他的
{            
打破
}           
}虽然(正确);

我想你是想写

System.out.print("Enter: "); System.out.flush();
final int n = Integer.parseInt(numbers.next());
if (n > 0 && n < 101) list.add(n);
System.out.print(“输入:”);System.out.flush();
final int n=Integer.parseInt(numbers.next());
如果(n>0&&n<101)列表。添加(n);
java.util.Scanner
还包含方法
nextInt
,该方法无需使用
Integer.parseInt
。您可以只说
numbers.nextInt()


您还需要将列表声明从
list
更改为
list

我猜您想写

System.out.print("Enter: "); System.out.flush();
final int n = Integer.parseInt(numbers.next());
if (n > 0 && n < 101) list.add(n);
System.out.print(“输入:”);System.out.flush();
final int n=Integer.parseInt(numbers.next());
如果(n>0&&n<101)列表。添加(n);
java.util.Scanner
还包含方法
nextInt
,该方法无需使用
Integer.parseInt
。您可以只说
numbers.nextInt()


您还需要将列表声明从
list
更改为
list

如果输入为非整数,则尝试将非整数(字符串)解析为整数,从而引发
NumberFormatException

int n=0;

try
{
n = Integer.parseInt(numbers.next());
}catch(Exception e)
{
}

if(n > 0 && n<101)
{
//your logic
}
int n=0;
尝试
{
n=Integer.parseInt(numbers.next());
}捕获(例外e)
{
}

如果(n>0&&n您试图将非整数(字符串)解析为整数,则在输入为非整数的情况下会抛出
NumberFormatException

int n=0;

try
{
n = Integer.parseInt(numbers.next());
}catch(Exception e)
{
}

if(n > 0 && n<101)
{
//your logic
}
int n=0;
尝试
{
n=Integer.parseInt(numbers.next());
}捕获(例外e)
{
}

如果(n>0&&您需要发布准确的代码并发布准确的错误stacktrace。感谢您的回复Marko,问题出在列表上。添加(n)当我将其更改为list时,这就是它抛出错误的地方。添加(numbers.next())可以工作,但会使我键入两倍相同的数字。错误:线程“main”中出现异常java.lang.RuntimeException:不可编译的源代码-错误的符号类型:java.util.List.add at assess1grade.GradeCalculator.readGrade(GradeCalculator.java:44)您应该通过编辑问题并正确设置格式来发布这些内容。我不完全理解这种情况。发布完整的stacktrace.java无法将int自动转换为字符串,它可以将int自动转换为整数,可以转换为字符串,但它不会在添加行中执行此操作。您有两个可能的修复程序:(1)将列表更改为列表,以便在调用列表时使用。添加(n)int n将自动装箱为整数并添加(2)更改行列表。添加(n)到列表。添加(“+n”)这可以通过java句柄创建字符串。您需要发布准确的代码,还需要发布准确的错误stacktrace。感谢您的回复Marko,问题出在列表上。add(n)当我将其更改为list时,这就是它抛出错误的地方。add(numbers.next())可以工作,但会使我键入两倍相同的数字。错误:线程中的异常“main”java.lang.RuntimeException:不可编译的源代码-错误的符号类型:java.util.List.add at assess1grade.GradeCalculator.readGrade(GradeCalculator.java:44)您应该通过编辑问题并正确设置格式来发布这些内容。我不完全理解这种情况。发布完整的stacktrace.java无法将int自动转换为字符串,它可以将int自动转换为整数,可以转换为字符串,但它不会在添加行中执行此操作。您有两个可能的修复程序:(1)将列表更改为list,以便在调用list时使用。add(n)int n将自动装箱为整数并被添加(2)更改行列表。add(n)to list。add(“+n”)这可以通过java句柄创建字符串