Advertisement
tangzhongao

Untitled

Apr 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. class Solution {
  2. public boolean isNumber(String s) {
  3. ValidateNumber validateNumber = new NumberValidators();
  4. return validateNumber.validate(s);
  5. }
  6.  
  7. public interface ValidateNumber {
  8. public boolean validate(String s);
  9. }
  10.  
  11. abstract class ValidateNumberTemplate implements ValidateNumber {
  12. public boolean validate(String s) {
  13. if(checkIsEmptyString(s)) {
  14. return false;
  15. }
  16.  
  17. s = checkAndProcessHeader(s);
  18.  
  19. return doValidate(s);
  20. }
  21.  
  22. private checkAndProcessHeader(String s){
  23. s = s.trim();
  24. if (s.startsWith("+") || s.startsWith("-")) {
  25. return s.substring(1);
  26. }
  27. return s;
  28. }
  29.  
  30. public abstract boolean doValidate(String s);
  31. }
  32.  
  33. public class NumberValidators implements ValidateNumber {
  34. private static List<ValidateNumber> validators = new ArrayList<ValidateNumber>();
  35.  
  36. public NumberValidators {
  37. addValidators();
  38. }
  39.  
  40. public boolean validateNumber(String s) {
  41. for (ValidateNumber validator : validators) {
  42. if (!validator.validateNumber(s)) {
  43. return false;
  44. }
  45. }
  46. return true;
  47. }
  48.  
  49. private void addValidators() {
  50. ValidateNumber validator = new IntegerValidator();
  51. validators.add(validator);
  52. }
  53. }
  54.  
  55. public class IntegerValidator extends ValidateNumberTemplate {
  56. public boolean doValidate(String s) {
  57. for (int i = 0; i < s.length(); i++) {
  58. if(!Character.isDigit(s.charAt(i))) {
  59. return false;
  60. }
  61. }
  62. }
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement