An alternative would be instead of storing data for each user as a single item, with its data seperated by ~, you could use an item naming convention to break up a user's data into multiple items:

For example lets say your user data was akin to:
Code:
Item: SomeUser Data: John~Doe~20~Male


Instead, use something similar to the following:
Code:
Item: FirstName.SomeUser Data: John
Item: LastName.SomeUser  Data: Doe
Item: Age.SomeUser       Data: 20
Item: Gender.SomeUser    Data: Male


This has the benefit of being able to search and retrieve a user's data using just native identifiers.