将每个组的字符串连接160个字符,并对剩余的

时间:2015-08-19 11:51:55

标签: java android string sqlite

我有一张表,我想要检索数据。我设法检索这些数据。扭曲是我想连接这些数据(这是字符串)来创建一个160个字符的字符串。我设法通过在Stackoverflow中由一个人回答这个代码来实现这一点。

代码是这样的:

List<Pending> pending = db.getAllPending();
    String a = "";
    for (Pending pn : pending) {
       if (a.length() + pn.getPm_str().length() <= 160) {
    a += pn.getPm_str();
    }
    else
    break;
    } 
  

代码连接数据,直到形成160长度的字符串。它将忽略碰巧超过限制的其他数据。

我的问题是:我如何对列表中剩余的数据做同样的事情(第一批160长度字符串中没有包含这些数据)?我还希望将这些数据连接起来以创建相同的数据。

该程序的概念与SMS发送有关。数据被连接起来,并被分组为一个要发送的短信。

需要帮助。

2 个答案:

答案 0 :(得分:1)

您需要创建结果字符串列表,并在连接字符串达到限制时添加它:

List<Pending> pending = db.getAllPending();
List<String> resultingStrings = new ArrayList<String>();
String a = "";
for (Pending pn : pending) {
   if (a.length() + pn.getPm_str().length() <= 160) {
        a += pn.getPm_str();
   }
   else {
        resultingStrings.add(a);
        a = pn.getPm_str();
   }
} 
resultingStrings.add(a);

答案 1 :(得分:1)

试试这个,

ArrayList<String> messageList=new ArrayList<>();

for (Pending pn : pending) {
  if (a.length() + pn.getPm_str().length() <= 160) {
   a += pn.getPm_str();
  }
  else{
   messageList.add(a);    
   a="";
   a += pn.getPm_str();
 }
}
messageList.add(a);