【问题标题】:How can I convert an object array to string for searching purposes?如何将对象数组转换为字符串以进行搜索?
【发布时间】:2015-05-29 11:33:41
【问题描述】:

所以我有一个可以由用户通过控制台添加的数组 当我尝试System.out.println(the array); 时,会出现:

project.Artist@31efa79f

很明显,如果艺术家的名字是约翰 有人搜索了约翰,他们找不到它,因为它显示为 project.Artist@31efa79f 那么如何让数组显示并允许将其作为用户输入进行搜索?

我还将如何使用扫描仪在数组中搜索特定艺术家? 所以扫描器将允许用户输入所需的艺术家姓名,然后它会搜索数组以查看该名称是否匹配?

【问题讨论】:

  • Arrays.toString(...)?
  • 您为什么想要这样做?假设您将数组转换为字符串并在其中找到“John”。然后呢?你不知道它在什么条目中......为什么不直接遍历数组呢?毕竟,为数组创建一个字符串必须循环遍历它,你不会避免任何事情......
  • 使用Collection,例如java.util.ArrayList,而不是数组。使用正确的集合类型,您可以非常轻松地做更多事情。

标签: java arrays search


【解决方案1】:

使用任一:

  • Arrays.toString(myArray) 用于单维数组,或
  • Arrays.deepToString(myArray) 用于多维数组

您的自定义对象必须使用@Override Object#toString 方法来打印人类可读的表示。

不过,您可能希望改为按属性值进行搜索。

因此,如果您的 MyObject 具有属性 artistName,则您为该属性 (getArtistName) 实现一个 getter,然后迭代 Collection<MyObject> 直到 getArtistName().equals("John")

【讨论】:

    【解决方案2】:

    您可以编写循环并遍历所有元素,您可以通过比较数组的元素来给出响应。

    如果你想将数组转换为字符串对象,那么你可以使用

    Arrays.toString(Object [] arr);
    

    【讨论】:

      【解决方案3】:

      你可以使用Arrays classtoString()方法,像这样:

      //If you have an object array obj
      Arrays.toString(obj);
      // returns a String containing the obj elements
      

      查看Java.util.Arrays.toString(Object[]) Method 了解更多信息。

      【讨论】:

        猜你喜欢
        • 2022-10-07
        • 1970-01-01
        • 2020-07-15
        • 2011-12-27
        • 2023-03-28
        • 1970-01-01
        • 2021-07-23
        相关资源
        最近更新 更多