Search code examples
arraysstringprivacyprivate-membersuser-profile

User Profile Privacy screen with comma separated String


I have a listView with many fields and CheckBox next to each field. Screen similar to a FaceBook Profile screen with Privacy setting to each field. So friends can not see those fields if marked as Private.

On selection of CheckBox, i have to create a comma separated String.

Example, FirstName Text ---> isFirstNamePrivate boolean

LastName Text ---> isLastNamePrivate boolean ...

I have to create a

            String str = "FirstName,LastName" 

if both are marked as Private.

If only isFirstNamePrivate is true then String str = "FirstName"

Also if i receive a comma separated String from Service, with that i have to make those Boolean array.

Given::

            String[] fieldNamesArray = "field1","field2","field3","field4","field5"};
            Boolean[] isfieldPrivate = {true,false,true,false,true};
            // fieldNamesArray.length will be equal to isfieldPrivate.length

Need to create below commaSeparatedStr from above given arrays.

            //
            String commaSeparatedStr = "field1,field3,field5";

Question is:

1) What is the optimized way to create a comma separated String. 2) What is the optimized way to create the Boolean array from the commaSeparatedString avoiding for loop on commaSeparatedStr .contains(str[n])

Given::

        String[] fieldNamesArray = "field1","field2","field3","field4","field5"};
        String commaSeparatedStr = "field1,field3,field5";

Need to create below Boolean array with commaSeparatedStr from above 2 arrays.

            Boolean[] isfieldPrivate = {true,false,true,false,true};
         // fieldNamesArray.length will be equal to isfieldPrivate.length     
        //

Solution

  • Where is the question part here? If you are asking for a suggestion: If there are 5 fields and first 3 are selected, make your string like {1,1,1,0,0} and pass it to your webservice. This would lighten the data package size.