2012-08-25 18 views
11

Duplicar posibles:
String's Maximum length in Java - calling length() method¿Hay algún límite para el tamaño de cadena en un programa Java?

He una cadena definida como

cadena xx

¿Hay algún límite para el número de caracteres que puedo asignar?

2) Estoy asignando la entrada del usuario a esta cadena xx. 70% de las veces las personas solo dan una palabra. algunas veces dan una gran oración, así que quiero saber si está bien? o hay alguna mejor practica de java?

+1

@anio Ha, ¡pásame! – MadProgrammer

+1

¿Google lo buscó brevemente antes de publicarlo? El segundo hit para 'java string length limit' fue el duplicado mencionado anteriormente. –

+0

Si tiene que preguntar, ya está haciendo lo incorrecto. Las cadenas no deben tratarse como contenedores. – EJP

Respuesta

35

Una pregunta común que podría haber buscado pero voy a responderla de todos modos.

¿Hay algún límite para el número de caracteres que puedo asignar?

Su Integer.MAX_VALUE o 2^31-1 o aproximadamente 2 mil millones. Es más probable que tenga problemas de memoria antes de llegar a este tamaño. p.ej. Necesita 4 GB para el String y 4 GB para crearlo.

Estoy asignando la entrada del usuario a esta cadena xx. El 70% de las veces las personas dan solo una palabra. algunas veces dan una gran oración, así que quiero saber si está bien?

Sospecho que todas las obras de J K Rowling encajarían en una sola cuerda.

o ¿hay alguna mejor práctica de Java?

Le sugiero que mantenga las cosas lo más simples posible. Asignar una referencia de cadena es lo más simple posible.

+0

Tenga en cuenta que si el tamaño del montón, dividido por el tamaño de 'char' (que es 2), es más pequeño que' Integer.MAX_VALUE', ese será el límite superior en su lugar. – Eric

+0

@Eric Así que "mucho más que una oración" ... ;-) –

+0

@Eric True, como mencioné, necesitas 4 bytes por cada char que quieras en las cuerdas. (2 bytes para la cadena y 2 bytes para compilarlo) –

Cuestiones relacionadas