循环,要求输入由ints组成的arraylist的用户输入。输入字符串时退出

时间:2015-03-08 01:14:03

标签: java arraylist

这个程序应该只使用arraylists.A循环应该继续要求用户输入由整数组成。每个用户输入都应该添加到arraylist。循环应该执行10次但是如果用户想要提前退出,输入字母x。

最初,我对如何在同一个数组中使用两种不同的变量类型感到困惑。但是,正如使用 arraylists 一样,这是可能的。下面粘贴的代码就是提出来的我以为我可以使用布尔值来检查字母x的arraylist。但是,如果输入x,它会显示异常。非常感谢。

import java.util.*;
public class ArrayList {
    public static void main(String[]args)
    {
        Scanner a=new Scanner(System.in);
        int counter=0;
        ArrayList myList=new ArrayList();
        for(int i=0;i<10;i++)
        {

        System.out.print("Enter whole number.Enter x to quit: ");
         int userinput=a.nextInt();
        myList.add(userinput);

        boolean element=myList.contains("q");
        if(element=true)
        {
            System.out.println("Doesn't contain q.");
        }
        else
        {
            System.out.println("Contains q.");
        }
        }
        }
}

2 个答案:

答案 0 :(得分:0)

如果用户输入非整数值,

a.nextInt 将抛出异常。 因此,您需要在处理之前使用 hasNextInt()检查输入的类型。

试试这个:

public static void main(String[]args)
    {
        Scanner a=new Scanner(System.in);
        ArrayList myList=new ArrayList();
        for(int i= 0; i < 2; i++)
        {
            System.out.print("Enter whole number.Enter x to quit: ");
            if (a.hasNextInt()) {
                int userinput=a.nextInt();
                myList.add(userinput);
            }
            else if (a.next().equals("x")) {
                break;
            }
        }

        System.out.println(myList);
    }

答案 1 :(得分:0)

该类的名称不应与其他类相同。虽然ArrayList中的实际util.*类是模板化的,但也是如此,应该避免这种情况。

其次, 您从用户那里获得的输入,通过调用int直接将其转换为.nextInt()。输入'x'时会出现异常。

而不是尝试使用StringUtils.

中的此实用程序
if(StringUtils.isNumeric(a.toString()))
{
 int userinput=a.nextInt();
}
else
{
 //check if input is 'x'
 //else
 //call 'continue;'
}

希望这有帮助。