zwitterions are amino acids that are neutral (the + and - charges cancel out) at a certain pH, also known at the pI/Isoelectric point. The negative charge comes from the carboxylic acid that has been deprotonated as the pH increase/base is added. And the positive charge comes from the still-protonated amino group. This explanation is for groups with only 1 amino and 1 carboxyl group - you may want to look in your orgo text for examples with more than one amino or carboxyl group, but the story is the same. If you look at nothing else, just think ZWITTERIONS --> AMINO ACIDS --> NEUTRAL