[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 );
}
}
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
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
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
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
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
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
Continúa...









Angelica dice:
Agosto 31st, 2008 a las 5:08 pm
como puedo hacer un casting a un vector que obtiene Arreglos.
Vector atributo
String [] art;
es decir algo asi art [i] = (String[])atributos.elementAt(i);
no se como hacerlo ayuda porfis
Casidiablo dice:
Agosto 31st, 2008 a las 6:36 pm
Hola Angélica, serÃa:
Vector atributo;String [] art;
art = (String[])atributos.get(i);
Aunque no se si realmente es lo que quieres. Pero el código de arriba serÃa correcto siempre y cuando el vector contenga arreglos String.
Un saludo
karla dice:
Octubre 2nd, 2008 a las 10:12 pm
hola alguin sabe cual es es caracter con el que termiana una cadena me urge please contesten
anferruqui dice:
Octubre 12th, 2008 a las 10:24 pm
ya pe amigo casidiablo ayudita ps
anferruqui dice:
Octubre 12th, 2008 a las 10:25 pm
ayudame como le ayudas a angelica ps porfitas.
wiston altamirano dice:
Octubre 17th, 2008 a las 10:31 am
muchas gracias por esta tu ayuda
gracias
alan dice:
Noviembre 22nd, 2008 a las 4:36 pm
hola de verdad me urge que me ayduden sobre un proyecto final..
Hacer un programa que simule un car Wash, en donde entrara carros de diferentes tamaño y dependiendo de la cantidad de ejes es el costo:
2 ejes: 90
4 ejes: 180
6 ejes: 240
El proceso del que esta formado el carwash es el siguiente:
Existe una sola maquina de lavado y el tiempo de duración depende de la cantidad de los ejes, ya que la duración del 2 ejes es de 12 segundos; y el tiempo es el doble por par de ejes.
Existen 4 módulos de limpieza y secado, y tiene una duración de 5 segundos por carro sin importar los ejes.
Al finalizar el dÃa, debe de mostrar la cantidad de carros lavados y la cantidad económica adquirida.
pelayo dice:
Diciembre 16th, 2008 a las 4:41 am
Muchas gracias por tus aportes, me vienen muy bien