Esta tarde he tenido que aprender JAVA a toda pastilla para tratar de resolver este rompecabezas.. pero creo que no lo voy a poder conseguir solo
Mi duda es la siguiente.
¿Qué "string" tengo que meter a la variable s1 para que al final del proceso me de TRUE?
Tal y como yo lo veo al final compara una string de 4 caracteres con otra de 5 por lo que la comparación nunca será verdadera. ¿O sí?. ¿Donde cometo el error?. Ya sé que modificando el 10 de "s1.substring(5, 10)" por un 9 lo consigo, pero se trata hacerlo metiendo la string s1 correcta.
A ver esas mentes privilegiadas si me echan una mano.
/**
* The HelloWorldApp clase implementa una aplicación que
* simplemente muestra "Hello World!" en la salida estándar.
*/
class HelloWorldApp {
public static void main(String[] args) {
String s1 = new String( "0000X4178=aBcd" );
System.out.println(s1);
if((s1 = s1.toLowerCase()).length() != 15)
System.out.println(s1);
if((s1 = s1.toLowerCase()).charAt(3) != s1.charAt(7) || s1.charAt(9) != s1.charAt(4))
System.out.println(s1.charAt(3));
if(s1.charAt(9) < s1.charAt(6))
System.out.println(s1);
int k = 0;
for(int l = 0; l < 6; l++)
k += (s1.charAt(l) - 48) + 1;
System.out.println(k);
if(k < 1000)
k += 4096;
String s2 = Integer.toString(k);
System.out.println(k);
StringBuffer stringbuffer = new StringBuffer();
for(int i1 = 0; i1 < 4; i1++)
{
int j1;
char c = (char)((j1 = ((j1 = s2.charAt(i1) - 97) + s1.charAt(10) * 1 + s1.charAt(11) * 2 + s1.charAt(12) * 4) % 64) + 48);
stringbuffer.append(c);
System.out.println (c);
}
System.out.println (stringbuffer.toString()) ;
System.out.println (s1.substring(5, 10));
System.out.println (stringbuffer.toString().equals(s1.substring(5, 10)));
}
}