lots of exercises in java... from https://github.com/exercism/java

example.java 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. public class PhoneNumber {
  2. private final String number;
  3. public PhoneNumber(String phoneNumber) {
  4. number = normalize(extractDigits(phoneNumber));
  5. }
  6. private String extractDigits(String dirtyNumber) {
  7. return dirtyNumber.replaceAll("[^\\d]", "");
  8. }
  9. private String normalize(String number) {
  10. if(number.length() == 11 && number.startsWith("1")) {
  11. number = number.substring(1, number.length());
  12. }
  13. final boolean numberIsValid = (number.length() == 10);
  14. final String normalizedNumber = numberIsValid ? number : "0000000000";
  15. return normalizedNumber;
  16. }
  17. public String getNumber() {
  18. return number;
  19. }
  20. public String getAreaCode() {
  21. return number.substring(0, 3);
  22. }
  23. public String getExchangeCode() {
  24. return number.substring(3, 6);
  25. }
  26. public String getSubscriberNumber() {
  27. return number.substring(6, 10);
  28. }
  29. public String pretty() {
  30. return "(" + getAreaCode() + ") " + getExchangeCode() + "-" + getSubscriberNumber();
  31. }
  32. }