【问题标题】:Compare value in ArrayList?比较 ArrayList 中的值?
【发布时间】:2018-03-02 17:25:15
【问题描述】:

我有字符串

String str = "51;60;61;62;63;64;73;75;76;77"

并将str转换成ArrayList

listId = new ArrayList<>(Arrays.asList(str .split(";")));

我调试和 listId 的项目有足够的数据,但问题发生在:

    id = String.valueOf(v.get(i).getCourseId());
    if (!listId.contains(id)) {
      logger.log("List id dont have id:"+id);
    }

结果是:

List id dont have id: 51

我不知道为什么它不识别值 51 存在于列表中,我尝试删除数字 51 并将数字 60 设置为第一个元素 -> 结果是:

List id dont have id: 60

请帮助我,告诉我哪里错了以及如何解决问题!谢谢:)

【问题讨论】:

  • v 列表是什么?也许它不包含 51 或 60?
  • 打印v.get(i).getCourseId() 看看它输出了什么
  • 如果 logger.log("List id dont have id:"+id); 记录 List id dont have id: 51 则在 id 变量中的 51 之前有一个空格。您应该清理 courseId 字符串。也许通过使用.trim()
  • 如果所有 id 都是整数,那么将它们存储为整数而不是字符串会更容易。

标签: java string arraylist contains


【解决方案1】:

您有一个前导空格。在比较之前使用trim 删除它,例如

!listId.contains(id.trim())

【讨论】:

  • 认为我的评论快了几秒钟 - 但是,嘿,接受吧! ;)
猜你喜欢
  • 2011-12-16
  • 1970-01-01
  • 2017-06-25
  • 2021-02-13
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
相关资源
最近更新 更多