As Price took off her headphones and prepared to stick up for herself, an unlikely feminist stepped in to help: a little boy named James.
According to Price, the boy looked up at the man and said: "Hey. That is not nice to say to her and she didn't like you yelling at her.
"You shouldn't do that because she is a nice girl and I don't let anyone say mean things to people. She's a girl like my sister and I will protect her."
Price shared the story of the boy and the catcaller on Facebook, where is has been liked more than 200,000 times.
"The man was immediately embarrassed and started gathering his lunch to leave," she said.
"I asked the mother if I could hug the little boy (his name is James) and I told him how grateful I was for him. He just shrugged and said 'Well I just wanted to make sure your heart was okay'.
"According to his mother, this is a typical day in the life of James."
Price ended the message by thanking all parents who are "raising the next generation to be brave and courageous and to be little earth angels for all".