gentoo linux, java, software libre y otras hierbas
dic, 06 2007 - 4:48 pm

[código] Ejemplos de Cadenas y caracteres en Java (1)

Esta sección trata el procesamiento de palabras, oraciones, caracteres y grupos de caracteres. Se presentan las clases String, StringBuffer, Character y StringTokenizer. También se presentan ejemplos de la API de Java para las expresiones regulares, la cual permite a los programas buscar en las cadenas secuencias de caracteres que concuerden con ciertos patrones especificados.

Constructores de la clase String

// Constructores de la clase String.
import javax.swing.*;

public class ConstructoresString {

   public static void main( String args[] )
   {
      char arregloChar[] = { 'c', 'u', 'm', 'p', 'l', 'e', ' ', 'a', 'ñ', 'o', 's' };
      byte arregloByte[] = { ( byte ) 'a', ( byte ) 'ñ',
         ( byte ) 'o', ( byte ) ' ', ( byte ) 'n',
         ( byte ) 'u', ( byte ) 'e', ( byte ) 'v', (byte) 'o' };

      String s = new String( "hola" );

      // usar constructores de String
      String s1 = new String();
      String s2 = new String( s );
      String s3 = new String( arregloChar );
      String s4 = new String( arregloChar, 7, 4 );
      String s5 = new String( arregloByte, 4, 5 );
      String s6 = new String( arregloByte );

      // anexar objetos String a salida
      String salida = "s1 = " + s1 + "\ns2 = " + s2 + "\ns3 = " + s3 +
         "\ns4 = " + s4 + "\ns5 = " + s5 + "\ns6 = " + s6;

      JOptionPane.showMessageDialog( null, salida,
         "Constructores de la clase String", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

}

Descargar código fuente

Métodos length, charAt y getChars de String

// Este programa demuestra los métodos length, charAt y getChars
// de la clase String.
import javax.swing.*;

public class VariosString {

   public static void main( String args[] )
   {
      String s1 = "hola a todos";
      char arregloChar[] = new char[ 4 ];

      String salida = "s1: " + s1;

      // probar método length
      salida += "\nLongitud de s1: " + s1.length();

      // iterar a través de los caracteres en s1 y mostrar al revés
      salida += "\nLa cadena invertida es: ";

      for ( int cuenta = s1.length() - 1; cuenta >= 0; cuenta-- )
         salida += s1.charAt( cuenta ) + " ";

      // copiar caracteres de la cadena a arregloChar
      s1.getChars( 0, 4, arregloChar, 0 );
      salida += "\nEl arreglo de caracteres es: ";

      for ( int cuenta = 0; cuenta < arregloChar.length; cuenta++ )
         salida += arregloChar[ cuenta ];

      JOptionPane.showMessageDialog( null, salida,
         "Métodos de  String para manipular caracteres",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

} // fin de la clase VariosString

Descargar código fuente

Métodos equals, equalsIgnoreCase, compareTo y regionMatches de String

// Los métodos equals, equalsIgnoreCase, compareTo y regionMatches de String.
import javax.swing.JOptionPane;

public class CompararString {

   public static void main( String args[] )
   {
      String s1 = new String( "hola" );  // s1 es una copia de "hola"
      String s2 = "adiós";
      String s3 = "Feliz Cumpleaños";
      String s4 = "feliz cumpleaños";

      String salida = "s1 = " + s1 + "\ns2 = " + s2 + "\ns3 = " + s3 +
         "\ns4 = " + s4 + "\n\n";

      // probar igualdad
      if ( s1.equals( "hola" ) )  // true
         salida += "s1 es igual a \"hola\"\n";
      else
         salida += "s1 es distinta de \"hola\"\n"; 

      // probar igualdad con ==
      if ( s1 == "hola" )  // false; no son el mismo objeto
         salida += "s1 es igual a \"hola\"\n";
      else
         salida += "s1 es distinta de \"hola\"\n";

      // probar igualdad (ignorar mayúsculas)
      if ( s3.equalsIgnoreCase( s4 ) )  // true
         salida += "s3 es igual a s4\n";
      else
         salida += "s3 es distinta de s4\n";

      // probar compareTo
      salida += "\ns1.compareTo( s2 ) es " + s1.compareTo( s2 ) +
         "\ns2.compareTo( s1 ) es " + s2.compareTo( s1 ) +
         "\ns1.compareTo( s1 ) es " + s1.compareTo( s1 ) +
         "\ns3.compareTo( s4 ) es " + s3.compareTo( s4 ) +
         "\ns4.compareTo( s3 ) es " + s4.compareTo( s3 ) + "\n\n";

      // probar regionMatches (susceptible a mayúsculas)
      if ( s3.regionMatches( 0, s4, 0, 5 ) )
         salida += "Los primeros 5 caracteres de s3 y s4 concuerdan\n";
      else
         salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan\n";

      // probar regionMatches (ignorar mayúsculas)
      if ( s3.regionMatches( true, 0, s4, 0, 5 ) )
         salida += "Los primeros 5 caracteres de s3 y s4 concuerdan";
      else
         salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan";

      JOptionPane.showMessageDialog( null, salida,
         "Comparaciones entre cadenas", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

} // fin de la clase CompararString

Descargar código fuente

Métodos startsWith y endsWith de String

// String methods startsWith and endsWith.
import javax.swing.*;

public class InicioFinString {

   public static void main( String args[] )
   {
      String cadenas[] = { "empezó", "empezando", "terminó", "terminando" };
      String salida = "";

      // probar el método startsWith
      for ( int cuenta = 0; cuenta < cadenas.length; cuenta++ )

         if ( cadenas[ cuenta ].startsWith( "em" ) )
            salida += "\"" + cadenas[ cuenta ] + "\" empieza con \"em\"\n";

      salida += "\n";

      // probar método startsWith, empezando desde la posición
      // 2 de la cadena
      for ( int cuenta = 0; cuenta < cadenas.length; cuenta++ )

         if ( cadenas[ cuenta ].startsWith( "pez", 2 ) )
            salida += "\"" + cadenas[ cuenta ] +
               "\" empieza con \"pez\" en la posición 2\n";

      salida += "\n";

      // probar el método endsWith
      for ( int cuenta = 0; cuenta < cadenas.length; cuenta++ )

         if ( cadenas[ cuenta ].endsWith( "do" ) )
            salida += "\"" + cadenas[ cuenta ] + "\" termina con \"do\"\n";

      JOptionPane.showMessageDialog( null, salida,
         "Comparaciones con la clase String", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

} // fin de la clase InicioFinString

Descargar código fuente

Métodos de búsqueda indexOf y lastIndexOf de String

// String searching methods indexOf and lastIndexOf.
import javax.swing.*;

public class MetodosIndexString {

   public static void main( String args[] )
   {
      String letras = "abcdefghijklmabcdefghijklm";

      // probar indexOf para localizar un caracter en una cadena
      String salida = "'c' se encuentra en el índice " + letras.indexOf( 'c' );

      salida += "\n'a' se encuentra en el índice " + letras.indexOf( 'a', 1 );

      salida += "\n'$' se encuentra en el índice " + letras.indexOf( '$' );

      // probar lastIndexOf para buscar un caracter en una cadena
      salida += "\n\nLa última 'c' se encuentra en el índice " +
         letras.lastIndexOf( 'c' );

      salida += "\nLa última 'a' se encuentra en el índice " +
         letras.lastIndexOf( 'a', 25 );

      salida += "\nEl último '$' se encuentra en el índice " +
         letras.lastIndexOf( '$' );

      // probar indexOf para localizar una subcadena en una cadena
      salida += "\n\n\"def\" se encuentra en el índice " +
         letras.indexOf( "def" );

      salida += "\n\"def\" se encuentra en el índice " +
         letras.indexOf( "def", 7 );

      salida += "\n\"hola\" se encuentra en el índice " +
         letras.indexOf( "hola" );

      // probar lastIndexOf para encontrar una subcadena en una cadena
      salida += "\n\nEl último \"def\" se encuentra en el índice " +
         letras.lastIndexOf( "def" );

      salida += "\nEl último \"def\" se encuentra en el índice " +
         letras.lastIndexOf( "def", 25 );

      salida += "\nEl último \"hola\" se encuentra en el índice " +
         letras.lastIndexOf( "hola" );

      JOptionPane.showMessageDialog( null, salida,
         "Métodos de búsqueda de String", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

}  // fin de la clase MetodosIndexString

Descargar código fuente

Método substring de la clase String

// Los métodos substring de la clase String.
import javax.swing.*;

public class SubString {

   public static void main( String args[] )
   {
      String letras = "abcdefghijklmabcdefghijklm";

      // probar métodos substring
      String salida = "La subcadena desde el índice 20 hasta el final es " +
         "\"" + letras.substring( 20 ) + "\"\n";

      salida += "La subcadena desde el índice 3 hasta 6 es " +
         "\"" + letras.substring( 3, 6 ) + "\"";

      JOptionPane.showMessageDialog( null, salida,
         "Métodos substring de la clase String", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

} // fin de la clase SubString

Descargar código fuente

Método concat de la clase String

// El método concat de la clase String.
import javax.swing.*;

public class ConcatenacionString {

   public static void main( String args[] )
   {
      String s1 = new String( "Feliz " );
      String s2 = new String( "Cumpleaños" );

      String salida = "s1 = " + s1 + "\ns2 = " + s2;

      salida += "\n\nResultado de of s1.concat( s2 ) = " + s1.concat( s2 );
      salida += "\ns1 después de la concatenación = " + s1;

      JOptionPane.showMessageDialog( null, salida,
         "El método concat de String", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );
   }

} // fin de la clase ConcatenacionString

Descargar código fuente

Continúa…

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

58 Comentarios | deja el tuyo

Un enlace entrante

57 Comentarios en “[código] Ejemplos de Cadenas y caracteres en Java (1)”

  1. Ghezuz dice:

    DISCULPEN COMO INSERTO UNA CADENA EN JAVA, ADEMAS E CONTAR CUANTAS PALABRAS CONFORMA LA CADENA SIN CONTAR LOS ESPACIOS….. AGRADESERIA MUCHO LA HAYUDA

  2. Rukawa dice:

    ola oye como pudiera hacer un programa q me pueda repetir una o varias palabreas las veces q yo le indique ?????

  3. Cristian dice:

    Usa las intrucciones de control FOR o WHILE. Hay ejemplos aquí:

    http://casidiablo.net/java

  4. gaby dice:

    oye necesito que me ayudes a encontrar donde puedo consultar manuales o libros de inicios de programcion lo mas basico x fa much, gracias

  5. Ghezuz dice:

    Gaby puedes econtrar manuales en la web del programador… espero qeu e sirva…http://www.lawebdelprogramador.com/

  6. Fabrix dice:

    por que no leen que no se hacen tareas… no les ayuda simplemente por que no hacen preguntas concretas… no que ustedes piden ayuda diciendole… me lo haces??? … chicos por favor hagan sus preguntas concretas para que se les ayude

  7. maria blanco diaz dice:

    solo tengo un pequeño problema tal vez es muy facil pero no encuentrola solucion como programa una impresion de un triangulo con cualquier caracter.

  8. ivan dice:

    hola esta bn padre este sitio para aprender java

  9. adan dice:

    como puedo hacer un programa que me diga cuantos caracteres tiene un texto un ejemplo cuantas a hay b,c,d etc. bueno espero que me puedan ayudar saludos

  10. phersoft dice:

    ejerccicios de constructores de clase vehiculos eso es lo que quierp y que el usuario ingrese dato

  11. Adrian dice:

    Buenas noches, muy buen sitio, tengo una duda, podemos encontrar en java una funcion similar en C para poder copiar cadenas, en C seria strcpy(), en java cual seria si similitud?
    y si no es mucha molestia en java cual e sla funcoin para convertir mayusculas a minuscula, de antemano gracias.

  12. Cristian dice:

    Hola Adrian… la verdad no necesitas algo como lo que pides, basta con igualar las variables. Algo como:

    cadenaDestino = cadenaOrigen;

    Con respecto a las funciones que dices, son toLowerCase() y toUpperCase().

    Un saludo!

  13. Adrian dice:

    Cristian muchas gracias, tienes razon solo igualando, pense que podriamos encontrar una funcion que hiciera eso, pero es mas facil asi. Gracias por las funciones realizare un programa para practicarlas, saludos y que buen sitio

  14. phersoft dice:

    ayudame con estos ejercicios EJERCICIOS propuestos sobre arreglos 1.REGISTRE POR TECLADO 20 numeros enteros(positivos,negativoso cero),almacenelos en un arreglo.determine y presente cuantos son menores a cero cuantos se encuentran en el rango 100 a200 y cuantos son mayores a 1000

¡Déjanos tu comentario!