java string replaceall time complexity