【问题标题】:Replacing the string content in a List of an object in Java用Java替换对象列表中的字符串内容
【发布时间】:2016-07-21 14:56:35
【问题描述】:

我在替换 List 成员中的 String 字段内容时遇到了一些问题。

我有一个对象列表,该列表中的一个字段是String。因此,作为一个示例,我有以下关于 getter 和 setter 的内容。

public class MyObject {
  private String message;
  private int numbers;
...

假设我创建了一个 MyObject 列表,其中有 3 个在该列表中,并且我从外部某个地方(如数据库)向它们添加了值。

List<MyObject> myObject = new ArrayList<>();

问题在于那个字符串消息。假设前 3 个条目中的 String 字段等于以下内容。

"First message"
"Second message"
"Third message"

如何遍历myObjectString 消息字段的列表,并将按字母顺序排列的"First" 替换为“1st”等新内容。

【问题讨论】:

  • 创建一个由 1st、2nd、3rd.. 组成的字符串数组,并在交换字符串时并行迭代它们
  • 你有你想要的替换集合吗?您打算替换所有序数吗?

标签: java string list


【解决方案1】:

只有当你的 MyObject 类允许你更新它的内部字符串时,你才能这样做;例如通过提供一个 setter 方法。

换句话说:

  1. 您迭代您的 MyObject 对象列表
  2. 对于每个对象,您必须查询其消息
  3. 那么您将不得不调用 setter 来更新其内容

【讨论】:

    【解决方案2】:

    您可以使用迭代器。但你的列表必须是字符串类型。

    示例

    ArrayList<String> myObject = new ArrayList<>();
    ListIterator litr = myObject.listIterator();
      while(litr.hasNext()) {
         String element = litr.next();
         if(element.equalsTo("first message"))
            element = "1st message";
           litr.set(element);
      }
    

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      您应该创建一个如下所示的array

      String[] s = new String[10];
      s[0] = "th";
      s[1] = "st";
      s[2] = "nd";
      s[3] = "rd";
      s[4] = "th";
      s[5] = "th";
      s[6] = "th";
      s[7] = "th";
      s[8] = "th";
      s[9] = "th";
      

      现在循环遍历您的列表并将String字段message中的第一个单词替换为当前索引i附加s[i%10]就足够了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-23
        • 2013-05-01
        • 2019-01-17
        • 1970-01-01
        • 2013-05-20
        • 2021-05-22
        • 2018-06-24
        • 1970-01-01
        相关资源
        最近更新 更多