gpt4 book ai didi

java - 如何在sqlite android中通过循环限制添加的数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:07 25 4
gpt4 key购买 nike

我有一个程序可以使用 ArrayListsqlite 表中检索值。我正在从中检索字符串数据并计算字符串的长度。如果总字符串数小于或等于 160,则该字符串将连接到另一个数据。如果总字符串数大于 160,则不会添加该字符串。

概念是这样的:

  1. 检索字符串
  2. 变量 a(将保存字符串)会将检索到的字符串连接到它。
  3. 检查 a 的长度是否小于或等于 160。如果小于则返回步骤 (1),如果不是则停止连接。

已更新

  1. 如果停止连接,字符串将被存储。
  2. 继续处理待定列表中的剩余字符串。

但是,如果长度超过 160,我的程序只是添加所有字符串,甚至不计算。这是我的代码:

List<Pending> pending = db.getAllPending();
String a="";
do{
for (Pending pn : pending) {
a += pn.getPm_str();
}
}while(a.length()<=160);
Log.d("s", a);

逻辑猫:

RBSN/C1/12/3/4/8,CVTE/C1/2/3/4/1,RBSN/C1/4/2131/331/12,RBSN/C1/45/67/12/44,RBSN/C1/44/231/123/23213,RBSN/C1/444/55522/222/11,RBSN/C1/123/123/213123/1231232,RBSN/C1/2/3/1/1,RBSN/C1/123/123/213123/1231232,

(string length is 172.)

预期输出应该是

RBSN/C1/12/3/4/8,CVTE/C1/2/3/4/1,RBSN/C1/4/2131/331/12,RBSN/C1/45/67/12/44,RBSN/C1/44/231/123/23213,RBSN/C1/444/55522/222/11,RBSN/C1/123/123/213123/1231232,RBSN/C1/2/3/1/1,

(string length is 156.)

跟进问题另外,如果我想再次重复相同的过程,但是这次该过程会影响前160中不包括的字符串,我该怎么办?

最佳答案

Java 中,never concatenate Strings inside a loop ,而不是这个,使用 StringBuilder并在每次迭代后检查是否需要添加更多字符串:

List<Pending> pending = db.getAllPending();
StringBuilder a = new StringBuilder();

for (Pending pn : pending) {
a.append(pn.getPm_str());
if (a.length > 160) break;
}
Log.d("s", a.toString());

关于java - 如何在sqlite android中通过循环限制添加的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32092442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com