【问题标题】:How to add string in the last foreach item?如何在最后一个 foreach 项目中添加字符串?
【发布时间】:2016-01-17 06:02:05
【问题描述】:

我想在 foreach 数组的最后一项中附加某个字符串。

该程序运行良好。给定“待处理”数组中的项目,它应该将输出值附加到待处理值的最后一项中:

String a = out + "-" + rptdate + "-";
for (String pn : pending) {
    //checks if total value + pending length value is less than 160
    if (a.length() + pn.length() < 160) { // < to leave room for the comma as well
        if (a.length() != 0) {
            if (a.length() != 14) {
                a += ",";
            }
        }

        a += pn;
    } else {
        resultingStrings.add(a);
        a = pn;
        Log.d("messages", a);
    }
}
resultingStrings.add(a);
for (String r : resultingStrings) {
    sendSMS(r);
}

【问题讨论】:

  • 我不太明白你的问题,所以你想将待处理列表中的最后一项附加到待处理列表中的每个项目?
  • pending 是数组的名称。然后,我想在数组的最后一项中附加一个字符串。

标签: java android string foreach


【解决方案1】:

试试简单的代码

int size = pending.size();
int index = 0;
for (String pn : pending) {
    if(index == size - 1){
      // it is last foreach => add your last string here
    }
    index++;    
    ...
}

希望有帮助

【讨论】:

    【解决方案2】:

    你也可以,

    for(int i = 0; i < array.length; i++) {
    
        if(i = (array.length - 1)) {
    
            //this is the last element in the array
        }
    }
    

    【讨论】:

      【解决方案3】:

      如果您需要做的只是抓取 Collection 的最后一个元素并向其附加一些文本,那么这应该可以工作。

      String out = "Some value";    
      int lastIndex = pending.getSize() -1; // < 0 indexed
      String lastItem = pending.get(lastIndex)
      String newLastItem = lastItem + out; // < String concatenation
      

      但从你的 sn-p 来看,我认为这不是你想要的,因为如果我们删除一些幻数并更正缩进,并对你试图做的事情做出一些假设

      String a = out + "-" + rptdate + "-";
      int prefixLength = a.length();
      for (String pn : pending) {
          //checks if total value + pending length value is less than 160
          if (a.length() + pn.length() < MAX_LENGTH) { // < to leave room for the comma as well
              if (a.length() > prefixLength) {
                  a += ",";
              }
      
              a += pn;
          } else {
              // have string longer than max length, so save and start a new sms.
              resultingStrings.add(a);
              Log.d("messages", a); // < log a before you overwrite it.
              a = pn;
          }
      }
      
      // DO YOU WANT TO APPEND out AS A SUFFIX TO a HERE ???
      // a += out;
      // but if so youll want to consider the case if a is now > MAX_LENGTH
      
      resultingStrings.add(a); // add the last string
      
      // send all composed strings
      for (String r : resultingStrings) {
          sendSMS(r);
      }
      

      我选择的是你相对较新的编码,所以我建议你首先从你尝试做的一些伪代码开始,然后它可以成为你代码中的 cmets。始终保持代码格式良好,以便缩进匹配,并为变量和常量使用描述性名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        • 2020-09-10
        • 1970-01-01
        相关资源
        最近更新 更多