Convertir un cadena de caracteres en un número entero Java

Hola a todos, alguna vez se me presento un problema en el cual tenia una cadena N de caracteres y lo necesitaba convertir a un número entero, el problema es que cuando uno realiza un hash devuelve un valor mayor a nueve dígitos por tal motivo lo solucione de la siguiente forma:

Primero como estaba trabajando con algoritmos de encriptación la cadena de caracteres la convertía en un arreglo de bytes y la enviaba como parámetro al siguiente código:


public static int toInt(byte[] buffer) {
StringBuilder builder = new StringBuilder(buffer.length << 1);
int result = 0;
for (byte b : buffer) {
if (((int) b & 0xff) < 0x10) {
builder.append(Long.toString((int) b & 0xff * 0x10));
}
builder.append(Long.toString((int) b & 0xff));
}
String changedBuffer = builder.toString();
if (changedBuffer.length() <= 9){ //Nos da un número mayor o igual a 9 dígitos
result = Integer.parseInt(changedBuffer);
} else if (changedBuffer.length() > 9) {//Procedemos a realizar la concatenación
int lengthBuffer = changedBuffer.length();
String initBuffer = changedBuffer.substring(0,5);
String mediaBuffer = changedBuffer.substring(lengthBuffer-4,lengthBuffer);
String finalBuffer = initBuffer + mediaBuffer;
result = Integer.parseInt(finalBuffer);
}
return result;
}

Este método retorna el mismo número bajo la misma cadena, cabe señalar que no es la solución más óptima pero lo puedes probar con distintos String y veras que te funciona y si quieres puedes modificar la longitud o la forma de extraer los caracteres a convertir, acomodándolos a como más les sirva. Espero haya sido de ayuda y hasta una próxima oportunidad.

Comentarios