function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
CageMMACageMMA 

How to get the next value in a LIST???

Hi all:

   I have the following, where I split the text area box with names but I do not know how to get the next value in that split... for example:

TextBox Area = X,Y,Z

3 Names
I use code to Split it based on comma (',')

but in a for loop do not know how to go to the next value...

 

            queryAttendeesLines(investor.id);           
            List<Investor_Feedback__c> sarq = new List<Investor_Feedback__c>(
            [Select Id,S_P_Attendees__c FROM Investor_Feedback__c
            where id=:investor.id] );   
            integer gone = -1;
            integer i = 0; 
            
            String filename;
            filename = sarq[0].S_P_Attendees__c; 
            List<string> my_list = new List<String>();
            for ( i=0; i< attendeeLineItems.size(); i++ ) {
            if(sarq[0].S_P_Attendees__c == null){
            sarq[0].S_P_Attendees__c = attendeeLineItems[i].Attendee_name__c; 
            }
            else {
                List<String> parts = filename.split(',');
                filename = parts[parts.size()-1];
                System.debug('-parts='+ parts + '-filename=' + filename + '-attendeeLineItems=' + attendeeLineItems[i].Attendee_name__c);
                System.debug('z1' + parts[i]);
                if(filename!=attendeeLineItems[i].Attendee_name__c){

                sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c = + ',' + attendeeLineItems[i].Attendee_name__c;                 
                }
            }
        }

 I tried Filename = parts.get(i) <== gave me error System.ListException: List index out of bounds: 1  ???

Best Answer chosen by Admin (Salesforce Developers) 
nandurinanduri

you need to use for loop to loop thru the 'parts' List and check wether the List already contains the name or not

Samples  for the else loop: 

 

 

/*Method 1*/ 

 

else {

List<String> parts = filename.split(','); 

        Set<String> partsString = new Set<String>();                   

for(String str :parts){

        partsString.add(str.trim());                        

}                   

if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){

        sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;                    

}                                                                          

}

 

 

 

 /*Method 2*/                                  

else {                   

Boolean flagCheck = false;                    

List<String> parts = filename.split(',');

        for(String str :parts){                       

if(str.trim() == attendeeLineItems[i].Attendee_name__c){                           

flagCheck = true;                           

break;                       

}                   

}                   

if(flagCheck == false){                       

sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;                    

}                                                                           

}

 

All Answers

nandurinanduri

you need to use for loop to loop thru the 'parts' List and check wether the List already contains the name or not

Samples  for the else loop: 

 

 

/*Method 1*/ 

 

else {

List<String> parts = filename.split(','); 

        Set<String> partsString = new Set<String>();                   

for(String str :parts){

        partsString.add(str.trim());                        

}                   

if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){

        sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;                    

}                                                                          

}

 

 

 

 /*Method 2*/                                  

else {                   

Boolean flagCheck = false;                    

List<String> parts = filename.split(',');

        for(String str :parts){                       

if(str.trim() == attendeeLineItems[i].Attendee_name__c){                           

flagCheck = true;                           

break;                       

}                   

}                   

if(flagCheck == false){                       

sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;                    

}                                                                           

}

 

This was selected as the best answer
CageMMACageMMA

Thank you... Soooo Much

CageMMACageMMA

Thank you now if someone removed an Attendee name from the list how do I do the reverse to remove the name from the text area box... for example

Before:

   Attendees = X,Y,Z

   TextArea box was = X,Y,Z

 

Remove X from Attendee

Textbox should equal now Y,Z and X should be removed??

 

Thanks

nandurinanduri

 

    

if(filename.contains(attendeeLineItems[i].Attendee_name__c)){

       filename.replace(attendeeLineItems[i].Attendee_name__c,'');

}           

                                                                         

CageMMACageMMA

Thanks but if I place that in, wouldn't it repeat everything... Like what part of the code would I place that in there...

 

nandurinanduri

for ( i=0; i< attendeeLineItems.size(); i++ ) {if(attendeeLineItems[i].Attendee_name__c == null){if(filename.contains(attendeeLineItems[i].Attendee_name__c)){       filename.replace(attendeeLineItems[i].Attendee_name__c,'');}    }else{if(sarq[0].S_P_Attendees__c == null){        sarq[0].S_P_Attendees__c = attendeeLineItems[i].Attendee_name__c;         }        else {List<String> parts = filename.split(',');         Set<String> partsString = new Set<String>();                   for(String str :parts){        partsString.add(str.trim());                        }                   if(!partsString.contains(attendeeLineItems[i].Attendee_name__c)){        sarq[0].S_P_Attendees__c = sarq[0].S_P_Attendees__c + ',' + attendeeLineItems[i].Attendee_name__c;                    }                                                                          }
}}