Несколько вставок во время конкатенации? - PullRequest
0 голосов
/ 07 октября 2011

У меня есть JSONObject, который я преобразовал в массив JSON, а затем проанализировал его в отдельных строках.Я объединил их, чтобы сформировать одну новую строку.Вот код, который я использовал.

            for(int n = 0; n<newtrs_array.length();n++){
                JSONObject object = newtrs_array.getJSONObject(n);
                String newcompanyid = object.getString("companyid");
                String newusername = object.getString("username");
                String newdate = object.getString("date");
                String newClientId = object.getString("clientid");
                String newprojectId = object.getString("projectid");
                String newniv1 = object.getString("niv1");
                String newniv2 = object.getString("niv2");
                String newworktypeid = object.getString("worktypeid");
                String newtimetypeid = object.getString("timetypeid");
                String newhours = object.getString("hours");
                String newcomment = object.getString("comment");
                String newprivatecomment = object.getString("privatecomment");
                String newopen = object.getString("open");
                String newreportid = object.getString("reportid");

                newtrsArray += newcompanyid+"#"+newusername+"#"+newdate+"#"
                               +newClientId+"#"+newprojectId
                               +"#"+newniv1+"#"+newniv2+"#"+newworktypeid
                               +"#"+newtimetypeid+"#"+newhours+"#"+newcomment
                               +"#"+newprivatecomment+"#"+newopen+"#"+newreportid;
                        }
            }

Это код, который используется для разделения newtrsarray

        for(int n=0; n<split_frombufferedValue.length; n++){
            if(split_frombufferedValue[n] != null){
            try{
                //Log.i(TAG, "***********%%%%%%%%%"+split_frombufferedValue[1]);
                newtrsArray = split_frombufferedValue[0].toString();  
                newschemaArray = split_frombufferedValue[1].toString();
                Log.i(TAG, "************* "+newschemaArray);
                newdeletedtrsArray = split_frombufferedValue[2].toString();
                String newcreatedtrs_array = split_frombufferedValue[3].toString();
                String newsync_reponse = split_frombufferedValue[4].toString();
                String newmodtrs_array = split_frombufferedValue[5].toString();

            } catch(Exception e){
                e.printStackTrace();
            }
        }

        }
            split_newtrsArray = newtrsArray.split("#");
                    split_newdeletedtrsArray = newdeletedtrsArray.split("@@@@");
            split_newschemaArray = newschemaArray.split("%%%%");
            Log.i(TAG, "############# "+split_newtrsArray[0]+" -length "+split_newtrsArray.length);

    }

Моя проблема в том, что: newtrsarray составляет около 4000 символов или более.Это приводит к тому, что "#" вставляется дважды или даже трижды за раз.Как показано ниже

&&--Second activty:HTTPClient--**(824): !!!!!------UTB17#DA#2011-10-10#1000#363636#10##105#30#5###no#30667UTB17#DA#2011-09-12#1000#363636#10##100##6##Not Available#yes#31659UTB17#DA#2011-09-13#1000#363636#10##100##2###yes#31665

Как обойти эту проблему.Значения должны быть объединены в одну строку, а затем разделены в другой функции.Затем они должны быть вставлены в базу данных.Надеюсь, я смог объяснить свою проблему ясно.

Ура!

1 Ответ

1 голос
/ 07 октября 2011

Я думаю, что ваша проблема возникает, когда вы вставляете его снова, когда массив имеет нулевой элемент, проверяет оператор if и проверяет, является ли он нулевым или нет. Сделайте это так:

                if(newcompanyid.equals("") || newcompanyid == null || newusername.equals("") || newusername == null 
                        || newdate.equals("") || newdate == null || newClientId.equals("") || newClientId == null || 
                        newprojectId.equals("") || newprojectId == null || newniv1.equals("") || newniv1 == null || 
                        newniv2.equals("") || newworktypeid.equals("") || newworktypeid == null ||newtimetypeid.equals("") 
                        || newtimetypeid == null || newhours.equals("") ||newhours == null ||newcomment.equals("") 
                        ||newcomment == null ||newprivatecomment.equals("") ||newprivatecomment == null||newopen.equals("")
                        ||newopen == null||newreportid.equals("") || newreportid == null)
...