Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public boolean isNumber(String s) {
- ValidateNumber validateNumber = new NumberValidators();
- return validateNumber.validate(s);
- }
- public interface ValidateNumber {
- public boolean validate(String s);
- }
- abstract class ValidateNumberTemplate implements ValidateNumber {
- public boolean validate(String s) {
- if(checkIsEmptyString(s)) {
- return false;
- }
- s = checkAndProcessHeader(s);
- return doValidate(s);
- }
- private checkAndProcessHeader(String s){
- s = s.trim();
- if (s.startsWith("+") || s.startsWith("-")) {
- return s.substring(1);
- }
- return s;
- }
- public abstract boolean doValidate(String s);
- }
- public class NumberValidators implements ValidateNumber {
- private static List<ValidateNumber> validators = new ArrayList<ValidateNumber>();
- public NumberValidators {
- addValidators();
- }
- public boolean validateNumber(String s) {
- for (ValidateNumber validator : validators) {
- if (!validator.validateNumber(s)) {
- return false;
- }
- }
- return true;
- }
- private void addValidators() {
- ValidateNumber validator = new IntegerValidator();
- validators.add(validator);
- }
- }
- public class IntegerValidator extends ValidateNumberTemplate {
- public boolean doValidate(String s) {
- for (int i = 0; i < s.length(); i++) {
- if(!Character.isDigit(s.charAt(i))) {
- return false;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement