class RRN {
String[] validNum = new String[30];
public void ValidateNumbers(String str) {
//System.out.println(str.length());
int i = 0, j = 0, k = 0;
while (i < str.length()-12) {
for (j = 0; j < 13; ++j) {
if (!(str.charAt(i+j) >= '0' && str.charAt(i+j) <= '9')) {
break;
}
else if (j == 12) {
validNum[k] = str.substring(i, i+13);
k++;
}
}
++i;
}
}
public void Validate() {
for (int i = 0; i < validNum.length; ++i) {
if (validNum[i] != null && validNum[i] != "Invalid") {
System.out.println(ValidateYY(validNum[i]));
}
}
}
public String ValidateYY(String str) {
return ValidateMM(str);
}
public String ValidateMM(String str) {
if (str.charAt(2) == '0' &&
str.charAt(3) >= '0' && str.charAt(3) <= '9') {
return ValidateDD(str);
}
else if (str.charAt(2) == '1' &&
str.charAt(3) >= '0' && str.charAt(3) <= '2') {
return ValidateDD(str);
}
return "Invalid";
}
public String ValidateDD(String str) {
if (str.charAt(4) == '0' &&
str.charAt(5) >= '0' && str.charAt(5) <= '9')
{
return ValidateRemain(str);
}
else if (str.charAt(4) == '1' &&
str.charAt(5) >= '0' && str.charAt(5) <= '9')
{
return ValidateRemain(str);
}
else if (str.charAt(4) == '2' &&
str.charAt(5) >= '0' && str.charAt(5) <= '9')
{
return ValidateRemain(str);
}
else if (str.charAt(4) == '3' &&
str.charAt(5) >= '0' && str.charAt(5) <= '1')
{
return ValidateRemain(str);
}
return "Invalid";
}
public String ValidateRemain(String str) {
return str;
}
}
public class RRNTest {
public static void main(String[] args) {
String str = "abc128714cd7903241081511AE@560547145666#";
RRN r = new RRN();
r.ValidateNumbers(str);
r.Validate();
}
}