gpt4 book ai didi

Java数组返回错误值

转载 作者:行者123 更新时间:2023-12-01 12:27:02 25 4
gpt4 key购买 nike

我使用以下代码从服务器检索数据:

String smsReceivedSender = "";
String receive_lastID = "";

String r = new JsonService(username, password, 0, 1, G.F_RECEIVE_SMS).request();
JSONArray data_array = new JSONArray(r);
JSONObject json_obj = data_array.getJSONObject(0);
receive_lastID = json_obj.getString("id_recived_sms");
smsReceivedSender = json_obj.getString("mobile_number");

我的类结构为:

public class ReceivedItemStructure {
public String mLastID;
public String mUserID;
public String mSmsBody;
public String mMobileNumber;
public String mDate;
public String mSenderName;
public String mSmsNumber;
public String mContactName;
}

在搜索此类数据之后,我尝试从中获取项目并将其保存到新的ArrayList中,例如:

ArrayList<String> items_array   = new ArrayList<String>();
for (ReceivedItemStructure rf:items){
items_array.add(rf.getmLastID());
}

检查数据:

for (String rf:items_array){
Log.e("items_array lastID value", rf);
}

现在我想通过以下方式将 receive_lastID 搜索到 item_array array 中:

Log.e("Received lastID", receive_lastID);
if( Arrays.asList(items_array).contains(receive_lastID) ) {
countSMS++;
}

检查结果:

Log.e("Result Check: ", String.valueOf(Arrays.asList(items_array).contains(receive_lastID)));

但无论如何都会返回false

日志猫:

10-08 08:15:25.100    2817-2817/ir.tsms E/Received lastID﹕ 30360152
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30360087
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30360052
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30360015
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30359363
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30359353
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30359273
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30359195
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30354338
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30354260
10-08 08:15:25.100 2817-2817/ir.tsms E/items_array lastID value﹕ 30353823
10-08 08:15:25.100 2817-2817/ir.tsms E/Result Check:﹕ false

30360152 lastId 不在 items_array 中,必须返回 false。但如果 items_array 有或没有,总是返回 false

我的代码有什么问题吗?

最佳答案

items_arrayList<String> ,当您调用Arrays.asList(items_array)时,您通常在数组上调用它,您将获得列表的列表 List<List<String>> ,这行不通;D尝试使用 foreach 循环来搜索列表,或者如果您使用 java 8 使用 .stream() 例如 items_array.stream().filter(o -> o.mLastID == receive_lastid).findFirst().get()

也许阅读一些关于干净代码的内容,你的公共(public)变量+ setter/getter 对我来说似乎很奇怪。

编辑:或者只使用 contains()....

关于Java数组返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252506/

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