Android 项一次又一次地保存在sqlite数据库中

Android 项一次又一次地保存在sqlite数据库中,android,string,android-sqlite,repeat,Android,String,Android Sqlite,Repeat,仅当满足所需条件时,我才尝试在sqlite数据库中保存值,但即使条件满足且未停止,它也会在数据库中保存值 这是我的密码 int asas = 0; if (list!= null) { for (int i1 = 0; i1 < list.size(); i1++) { String s= list.get(i1); while (msgBody.toUpperCase().contains(s.toUpper

仅当满足所需条件时,我才尝试在sqlite数据库中保存值,但即使条件满足且未停止,它也会在数据库中保存值

这是我的密码

int asas = 0;
       if (list!= null) {
         for (int i1 = 0; i1 < list.size(); i1++) {

           String s= list.get(i1);

           while (msgBody.toUpperCase().contains(s.toUpperCase()) && !contactExists(context, msg_from)) {

               asas++;
             if (asas>=3)
             {
                screenMessage(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
             }

             if (asas <3 && !contactExists(context, msg_from)) {


                screenMessagee(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table

             break;
              }
             break;
           }
         }
       }
我发现这可能是因为当while条件到达存储的3个项目时,它将值保存在数据库中,但由于提供的字符串包含5个项目,因此while条件不会停止并再保存值两次,直到满足所有5个项目的条件。
如果在数据库表中找到3项且值必须只保存一次,请帮助如何停止该条件。据我所知,您希望计算列表中存储的单词在特定字符串中出现的次数,然后根据其是否小于3,将其存储在两个数据库表中的一个表中

我不太理解您的代码,但请尝试以下操作:

int asas = 0;
   if (list!= null) {
     for (int i1 = 0; i1 < list.size(); i1++) {

       String s= list.get(i1);


       if(msgBody.toUpperCase().contains(s.toUpperCase()) && !contactExists(context, msg_from)){

           asas++;
       }


   }
     if(asas>0){
    if(asas<3)
    {
        screenMessagee(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }

    else{

        screenMessage(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }
     }
int asas=0;
如果(列表!=null){
对于(int i1=0;i10){

如果(当您创建数据库时,请将其作为存储项!但我想在满足该条件后存储。当创建应用程序变量标志时,我不明白您在说什么,请您更正我的代码好吗?我不太理解您的代码,条件没有优化,方法的名称也没有帮助。是screenMessage插入数据吗基础?是的,正是我需要按照你说的做的。让我应用你的代码。我不知道该说什么,但你不懂代码,它仍然像一个符咒。非常感谢你,你很和善
int asas = 0;
   if (list!= null) {
     for (int i1 = 0; i1 < list.size(); i1++) {

       String s= list.get(i1);


       if(msgBody.toUpperCase().contains(s.toUpperCase()) && !contactExists(context, msg_from)){

           asas++;
       }


   }
     if(asas>0){
    if(asas<3)
    {
        screenMessagee(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }

    else{

        screenMessage(context, msg_from, msg_from, msgBody, msgDate); //saving value in this table
    }
     }