首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果用户输入不是ArrayList中的唯一值,如何循环提示用户输入?

如果用户输入不是ArrayList中的唯一值,如何循环提示用户输入?
EN

Stack Overflow用户
提问于 2019-05-06 09:57:36
回答 3查看 53关注 0票数 0

我正在尝试让用户为一本书的ISBN输入唯一的值。我能够接收用户输入,它可以很好地填充ArrayList,但是如果用户输入的值已经在ArrayList中,我希望他们收到一条错误消息,并被提示重试。

代码语言:javascript
代码运行次数:0
运行
复制
 do{ 

    System.out.print("\n ISBN must be 4 numbers only.\nEnter isbn: ");
    isbn = sc.nextLine();

  try{
    isbnInt = Integer.valueOf(isbn);
    }//end try

    catch(NumberFormatException nfe){
     System.out.println("\nPlease enter integer numbers only.");
    }//end catch


 }while(isbn.trim().length() <4 && (isbn.trim().length()>0) ||  (isbn.trim().length() >4));
    sc = new Scanner(System.in);
    System.out.println();

 do{   
    System.out.print("Enter quantity: ");
    quantity = sc.nextLine();

     try{
    quantityInt = Integer.valueOf(quantity);
    }//end try

    catch(NumberFormatException nfe){
     System.out.println("\nPlease enter integer numbers from 1 through 1000 only.");
     }//end catch

  }while(quantity.trim().length() > 1000 ||(quantity.trim().length()<0) );
EN

回答 3

Stack Overflow用户

发布于 2019-05-06 10:14:56

创建验证ISBN的方法,如下所示

代码语言:javascript
代码运行次数:0
运行
复制
public boolean verifyISBN(int ISBN)

在这里,您将使用for循环检查数组中是否存在ISBN

收到返回值后,将其存储在一个变量中,并在第一个do-while循环的while条件中使用。

票数 0
EN

Stack Overflow用户

发布于 2019-05-06 10:24:55

我认为您需要一种不同的数据结构,比如HashSet,因为它不允许重复。

调用add方法时:

代码语言:javascript
代码运行次数:0
运行
复制
hashSet.add(quantityInt);

它验证HashSet是否已经包含该元素。

  • if it :它将不插入元素并返回false;
  • if,如果不包含:它将插入元素并返回false
  • if

您可以检查该方法是否返回了false,如果是,则显示一条错误消息并再次启用输入。

代码语言:javascript
代码运行次数:0
运行
复制
...
final Set<Integer> set = new HashSet<>();
int quantityInt = scanner.nextInt();
while(!set.add(quantityInt)) {
   System.out.println("You can't insert duplicate elements.");
   quantityInt = scanner.nextInt();
}
...
票数 0
EN

Stack Overflow用户

发布于 2019-05-06 11:12:30

我觉得我就像在拨打电话。不幸的是,我需要使用ArrayList进行赋值。我有一个带有布尔运算符"contains“的while循环设置。

代码语言:javascript
代码运行次数:0
运行
复制
while(contains != books.contains(isbnInt)){

但它不起作用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55997961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档