¿Cuántos caracteres puede tener una cadena Java?
Estoy probando el problema The Next Palindrome de Sphere Online Judge (SPOJ), donde necesito encontrar un palíndromo para un número entero de hasta un millón de dígitos. Pensé en usar las funciones de Java para invertir cadenas, pero ¿permitirían que una cadena fuera tan larga?
Deberías poder obtener una cadena de longitud
Integer.MAX_VALUE
siempre 2,147,483,647 (2 31 - 1)
(Definido por la especificación Java, el tamaño máximo de una matriz, que la clase String usa para el almacenamiento interno)
OHalf your maximum heap size
(dado que cada carácter tiene dos bytes), el que sea menor .
Creo que pueden tener hasta 2 ^ 31-1 caracteres, ya que están contenidos en una matriz interna y las matrices están indexadas por números enteros en Java.
¿Has considerado usar BigDecimal
en lugar String
de guardar tus números?