Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
A nadie le importa una mierda, pero... v12
El problema es que usáis la clase equivocada. Si queréis trabajar con cadenas no tenéis que usar String, sino Stringbuffer.

Cuando añadís o substraéis caracteres a un String, el compilador hace lo siguiente:

String -> [new] Stringbuffer -> [Operaciones] -> [new] String

Porque el objeto String es inmutable, ya que la clase nativa es char y String es un array de chars, mientras que Stringbuffer es un vector.

Cuando haces.
Código:
String hola= "hOla".toUpperCase(); // "HOLA"

El compilador crea el String "hOla", lo convierte a buffer, lo modifica a HOLA y lo vuelve a convertir a String.
Si tomas la costumbre de usar siempre Stringbuffer te ahorras dos objetos y dos casts.

Y no, no es ninguna inconsistencia. Es llevar la orientación a objetos a sus máximas consecuencias. Es más, diría que fueron consistentes en exceso a la hora de no hacer nativa la clase String.
[Imagen: YpRAA7X.png]
"Es como el que se mataba a pajas con U-jin y hoy en día o es Boku no Piko o ni se le levanta." - AniList


Mensajes en este tema
Post Reply - por Fatimasiddd - 11-07-2011, 02:14 AM
RE: Post Reply - por Reboot - 11-07-2011, 09:32 AM
RE: A nadie le importa una mierda, pero... v12 - por Reboot - 10-19-2011, 08:56 AM

Salto de foro:


Usuarios navegando en este tema: 26 invitado(s)