cadenas

Manejo de cadenas en Java. Métodos split, indexOf, substring y trim

Muchas veces nos es necesario tratar cadenas de texto, pero la mayoría de esas veces no utilizamos la cadena entera, sino que necesitamos extraer subcadenas que contienen datos relevantes.

Java tiene varios métodos para el manejo de cadenas. Los que vamos a tratar son los siguientes:

  • String[]     split(String regex)
  • int     indexOf(int ch)
  • int     indexOf(int ch, int fromIndex)
  • String     substring(int beginIndex)
  • String     substring(int beginIndex, int endIndex)
  • String     trim()

El método split devuelve un array de String. Es muy útil cuando tenemos un conjunto de elementos separados por comas. Por ejemplo:

 

La salida será:
    rojo
    amarillo
    verde
    azul
    morado
    marrón

El método indexOf devuelve la primera aparición de una cadena dentro de un String. Si le pasamos dos parámetros el primero será la cadena a buscar y el segundo la posición en la que empezará a buscar.
El método substring devolverá una subcadena del String, desde la posición de inicio hasta la posición de fin. Si sólo se especifica un parámetro la subcadena contendrá desde la posición de inicio hasta el final de la cadena. Se ve más claro en el siguiente ejemplo:

 

La salida será:
    amarillo
    amarillo,verde,azul,morado,marrón

Por último, el método trim devuelve una copia de la cadena, pero sin los espacios al inicio o al fin. Es bastante útil en el uso de formularios y en otras muchas ocasiones. Os dejo la prueba para vosotros.

Espero que os haya sido de ayuda.

Por favor, para consultas sobre estos métodos, abrir un tema en los foros de Java-Spain

Manejo de cadenas en Java - Metodo compareTo

Continuando con las anteriores entregas de Manejo de cadenas en Java, hoy vamos a comentar un método que es muy útil para ordenar listados de palabras.

Como su nombre indica, el método compareTo(String str) realiza una comparación entre un String (en este caso) y otro objeto de tipo String.

Lo que realmente hace este método, es observar una cadena con respecto a otra y devolverá un número entero int. Este número determinará cuál de las dos cadenas va antes o después. El entero valdrá menos que 0 si la cadena argumento es lexicográficamente mayor que la cadena a comparar, 0 si son iguales y será mayor que 0 si es menor. Por ejemplo:

 

Formateando números: NumberFormat

Para comenzar, simplemente comentar que esta clase es muy útil para presentar números por pantalla, teniendo el control en todo momento del formato que tendrán. Más adelante dedicaremos otro post a DecimalFormat, que hereda de esta primera.

NumberFormat es la clase más sencilla de las dos. Principalmente presenta los siguientes métodos:

  • getInstance() - Simplemente obtiene el formato del idioma actual.
  • getCurrencyInstance() - Igual que el anterior, pero con formato de moneda.

y sus respectivas variantes con un parámetro de tipo Locale, que sustituirá al idioma actual.

Para realizar el formato será necesario llamar al método format, como veréis en el ejemplo.

Esta clase supone un componente muy flexible a la hora de formatear números. Como siempre, me apoyaré en la documentación de Java para la explicación, dado que es nuestro más preciado recurso ;-).

 

Curiosidades Java: Optimización de Strings (II)

Como continuación del post anterior Curiosidades Java: Optimización de Strings (I), hoy os ofrezco una manera de optimizar de manera "brutal", si me permitís la expresión.

Normalmente, cuando uno empieza a programar en Java, solemos utilizar la clase String para representar cadenas de caracteres. En un principio, y para aplicaciones sencillas que no manejan una gran cantidad de cadenas, es suficiente. El problema viene cuando, por ejemplo, tenemos que realizar miles de concatenaciones de cadenas. En este caso la clase String presenta un rendimiento pésimo comparado con otras dos clases que vamos a tratar a continuación.

Curiosidades Java: Optimización de Strings (I)

Para quien lleve bastante tiempo con Java, sabrá lo que voy a contar a continuación, pero para los que se inician en el lenguaje esto les será muy útil. Dentro de la optimización de Strings voy a tratar dos temas distintos en sendas entradas, relacionadas con cómo la JVM maneja la memoria.

Hoy, en primer lugar, os voy a plantear una pregunta (no, no hay premio para el que acierte, además os voy a decir la solución :P).

La pregunta es la siguiente:

Si tenemos el siguiente fragmento de código:

 

¿Cuántas regiones de memoria utilizará la JVM para almacenar ambas cadenas?

Distribuir contenido