Skip to content

Instantly share code, notes, and snippets.

@helpermethod
Last active September 19, 2019 07:44
Show Gist options
  • Save helpermethod/0ce9d0d187a6d30cbff30e0028a4dc5b to your computer and use it in GitHub Desktop.
Save helpermethod/0ce9d0d187a6d30cbff30e0028a4dc5b to your computer and use it in GitHub Desktop.
public class PhoneNumber {
private final String areaCode;
private final String phoneNumber;
private PhoneNumber(String areaCode, String phoneNumber) {
this.areaCode = areaCode;
this.phoneNumber = phoneNumber;
}
public static PhoneNumber create(String areaCode, String phoneNumber) {
String sanitizedAreaCode =
(areaCode == null ? "" : areaCode)
.trim()
.replaceAll("[^a-z+]", "")
.replaceFirst("^\\+?49", "")
.replaceFirst("^([^0])", "0$1");
String sanitizedPhoneNumber =
(phoneNumber == null ? "" : phoneNumber)
.trim()
.replaceAll("[^a-z+]", "");
// TODO handle same/similar areaCode/phoneNumber
return new PhoneNumber(sanitizedAreaCode, sanitizedPhoneNumber);
}
public String join(String separator) {
return areaCode + separator + phoneNumber;
}
public String phoneLink() {
return "tel:" + (areaCode + phoneNumber).replaceFirst("^0", "+49");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment