import java.util.Scanner;
public class Question1 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("What would you like me to check for consecutiveness?");
String message = reader.nextLine();
if ((consecIncrease (message) == true) || (consecDecrease (message)== true)) {
System.out.format("The message has consecutive characters.");
}
else
{
System.out.format("The message does not have consecutive characters.");
}
} // end main
// method 1
public static boolean consecIncrease(String message) {
boolean lowerCaseConsec = false;
boolean upperCaseConsec = false;
boolean numberConsec = false;
boolean result = false;
//should check one less than the message length.
for (int i = 0; i < message.length() - 1; i++) {
if ((message.charAt(i) >= 'a' && message.charAt(i) <= 'z')
&& (((message.charAt(i) == message.charAt(i + 1)+ ('a' - 'b'))
|| (message.charAt(i) == message.charAt(i + 1) + ('a' - 'B')))
|| (message.charAt(i+1)>= '0' && message.charAt(i+1)<= '9'))) {
lowerCaseConsec = true;
}
else if ((message.charAt(i) >= 'A' && message.charAt(i) <= 'Z')
&& (((message.charAt(i) == message.charAt(i + 1)+ ('A' - 'B'))
|| (message.charAt(i) == message.charAt(i + 1) + ('A' - 'b')))
|| (message.charAt(i+1)>= '0' && message.charAt(i+1)<= '9'))) {
upperCaseConsec = true;
}
else if ((message.charAt(i) >= '0' && message.charAt(i) <= '9')
&& (((message.charAt(i) == message.charAt(i + 1)+ ('0' - '1')))
|| (message.charAt(i+1) >= 'a' && message.charAt(i+1) <= 'z')
|| (message.charAt(i+1)>= 'A' && message.charAt(i+1)<= 'Z'))) {
numberConsec = true;
}
else {
result = false;
}
}// end for
boolean finalResult = (lowerCaseConsec && upperCaseConsec && numberConsec && result);
return finalResult;
} // end method 1
// method 2
public static boolean consecDecrease(String message) {
boolean lowerCaseConsec = false;
boolean upperCaseConsec = false;
boolean numberConsec = false;
boolean result = false;
for (int x = 0; x < message.length() - 1; x++ ) {
if ((message.charAt(x) >= 'a' && message.charAt(x) <= 'z')
&& (((message.charAt(x) == message.charAt(x+1) +('b' - 'a'))
|| (message.charAt(x) == message.charAt(x+1) + ('b' -'A')))
|| (message.charAt(x+1)>= '0' && message.charAt(x+1)<= '9'))) {
lowerCaseConsec = true;
}
else if ((message.charAt(x) >= 'A' && message.charAt(x) <= 'Z')
&& (((message.charAt(x) == message.charAt(x+1) + ('B' - 'A'))
|| (message.charAt(x) == message.charAt(x+1) + ('B' -'a')))
|| (message.charAt(x+1)>= '0' && message.charAt(x+1)<= '9'))) {
upperCaseConsec = true;
}
else if ((message.charAt(x) >= '0' && message.charAt(x) <= '9')
&& (((message.charAt(x) == message.charAt(x+1) + ('2' - '1')))
|| (message.charAt(x+1) >= 'a' && message.charAt(x+1) <= 'z')
|| (message.charAt(x+1)>= 'A' && message.charAt(x+1)<= 'Z'))) {
numberConsec = true;
}
else {
result = false;
}
}// end for
boolean finalResult = (lowerCaseConsec && upperCaseConsec && numberConsec && result);
return finalResult;
}//end method 2
}