gpt4 book ai didi

java - 检查 String[] 中的 String 是否在 ArrayList

转载 作者:搜寻专家 更新时间:2023-10-30 21:44:43 26 4
gpt4 key购买 nike

我刚刚构建了一个广播接收器,我可以用它来获取传入的文本消息,然后在有空格时拆分文本消息并将其保存到 String[] 中。 .

现在我需要检查是否在这个 String[] 中是我的数据库中的东西。为此,我创建了一个 ArrayList<String> , 它从相应的列中获取所有条目。现在我需要检查我的 ArrayList 中是否有字符串我的String[]也是一样的从短信中,但我不知道如何实现这一点。

是否有一种简单快捷的方法来检查它,我还需要知道它们中的哪个字符串?

SmileySmsReceiver:

  package de.retowaelchli.filterit.services;


import java.util.ArrayList;

import de.retowaelchli.filterit.database.SFilterDBAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;



public class SmileySmsReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent)
{
//Datenbank definieren
SFilterDBAdapter mDbHelper = new SFilterDBAdapter(context);


//---get the SMS message passed in---
Log.d("SmileySmsReceiver", "Yes it calls the onReceive");
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
Log.d("SmileySmsReceiver", "Bundle is not null");
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
Log.d("SmileySmsReceiver","Was steht in der Nachricht?: " + str);

String[] splited = str.split("\\s+");

//Hier werden die Strings der Smileys aus der Datenbank gezogen
mDbHelper.open();
Cursor c = mDbHelper.getAllSFilter();

ArrayList<String> SmileyList = new ArrayList<String>();
c.getColumnIndex(SFilterDBAdapter.KEYWORD);
int ColumnIndex = c.getColumnIndex(SFilterDBAdapter.KEYWORD);
if(c!=null)
{
//Hier werden die Smileys in die ArrayList geschrieben
while(c.moveToNext()){
String infoItem = c.getString( ColumnIndex );
SmileyList.add(infoItem);
}
<------------------------- FROM HERE ON I NEED YOUR GUYS HELP ------------------------------->
}
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}
}

最佳答案

如果你有一个 String myString和一个 ArrayList<String> myListOfStrings , 你可以检查 myString在这样的列表中:

myListOfStrings.contains( myString );

这将返回一个 boolean 值 (true/false) - 如果找到字符串则返回 true,否则返回 false。

在您的情况下,您可能希望遍历字符串数组并将它们中的每一个与 SmileyList 匹配像这样:

for( String s : splitted ) {
if( SmileyList.contains( s ) ) {
//Do what you need to do if the string is in the SmileyList.
}
}

关于java - 检查 String[] 中的 String 是否在 ArrayList<string> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7900101/

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