这个程序应该只使用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.");
}
}
}
}
答案 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;'
}
希望这有帮助。