简体   繁体   English

Integers.parseint(在扫描仪输入上),我也想进行限制,因此用户只能输入0到100范围内的数字

[英]Integers.parseint( on scanner input ), also i want to make limits so user can only input number in range from 0 to 100

Hello guys im having little problem here, Firstly i want to parse string which comes from scanner into int, so i can later use it IF statement. 大家好,我在这里没有什么问题,首先,我想将来自扫描程序的字符串解析为int,以便以后可以在IF语句中使用它。 Code looks like this 代码看起来像这样

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);

Any help appreciated, hopefully i made my self clear and my problem too 任何帮助表示赞赏,希望我能阐明自己的意思,也可以解决我的问题

Edit: 编辑:

        do {

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

        if (numbers.next().startsWith("y")) 
        {                               
            System.out.print("Enter: "); 
            System.out.flush();                
            final int n = Integer.parseInt(numbers.next());
            if (n > 0 && n < 101) 
            {
                list.add(n);
                // this is where i get the error.

                //no suitable method found for add(int)
                // method java.util.List.add(int,java.lang.String) is not applicable
                // (actual and formal arguments lists differ in length)
                // method java.util.List.add(java.lang.String) is not applicable
                // (actual argument int cannot be converted to java.lang.String 
                // by method invocation conversion).

                // end of log
            }
            else
            {
                System.out.println("Number you have entered exceeds raange between 0-100");
            } 
        }
        else
        {            
            break;                
        }           
    }while (true);

I presume you wanted to write 我想你想写

System.out.print("Enter: "); System.out.flush();
final int n = Integer.parseInt(numbers.next());
if (n > 0 && n < 101) list.add(n);

java.util.Scanner also contains the method nextInt , which obviates the need for Integer.parseInt . java.util.Scanner还包含nextInt方法,从而消除了对Integer.parseInt的需求。 You can just say numbers.nextInt() . 您可以只说numbers.nextInt()

You also need to change your list declaration from List<String> to List<Integer> . 您还需要将列表声明从List<String>更改为List<Integer>

You are trying to parse non-integer (String) to integer which throws NumberFormatException in cases where input is non-integer. 您试图将非整数(字符串)解析为整数,如果输入为非整数,则抛出NumberFormatException

int n=0;

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

if(n > 0 && n<101)
{
//your logic
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 java 中使用扫描仪仅接受来自用户输入的特定行数 - How can I accept only a specific number of lines from user input using scanner in java 我想将扫描仪的整数输入限制在一个范围内 - I want to limit the integer input for the scanner in a range 使用户只在扫描仪 Java 中输入整数 - Make user only input integer in scanner Java 如何在 Java 中存储扫描仪输入整数,以便打印输入整数列表的总和? - How can I store the scanner input integers in Java so I can print the sum of a list of input integer numbers? 如何使用扫描仪从用户那里输入输入以选择输入的最小数量? - How can I use scanner to take input from user to choose minimum number entered? 如何制作一个只说一件事的聊天机器人,同时让用户使用扫描仪输入任意数量的输入 - How to make a chatbot that only says one thing, while letting the user input as many inputs as they want using scanner 如何从扫描仪库中读取任何用户输入? - How can I read any user input from the scanner library? 我如何创建一个带有数组的扫描仪,并在 java 中找到输入用户的最小值、最大值和平均值? - How can I create a scanner with array and also find min ,max and average of input user in java? 仅允许使用Java扫描器输入整数 - Only allow input of integers with java scanner 如何让我的输入验证工作,以便 -1 - 100 范围之外的任何内容都将显示错误消息? - How can I get my input validation to work so anything outside range -1 - 100 will display the error message?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM