[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…
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.
42 Comentarios | deja el tuyo



Que tal phersoft, te dare la idea para que tu hagas tu tarea va?
//crea tu arreglo y el llenado
double []array = new double[20];
System.out.println(“Ingresar datos:”);
for(int i=0; i<array.length;i++)
{
array[i]=entrada.readLine();
}
//convierte valores
for(int i=0; i<array.length;i++)
{
array[i] = Double.parseDouble(array[i]);
}
//contadores usando if anidados
for(int i=0; i<array.length;i++)
{
if( array[i]100 && array[i]1000)
{
l++;
}
}}//cierra else
}//cierra for
System.out.println(j);
System.out.println(k);
System.out.println(l);
espero te guies con este ejemplo , saludos
perodn la parte de los contadores s epuso mal seria;
for(int i=0; i<array.length;i++)
{
if( array[i]100&&array[i]1000)
{
l++
}
}}//cierra else
}//cierra for
Gracias por tus aportes Adrian. Desafortunadamente ya no tengo el tiempo que tenía antes, pero es bueno ver que hay usuarios que participan en este blog.
Un saludo!
Hey men muchas gracias por este gran aporte
oie kisiersa saber como puedo hhacer k en un editor de texto hecho en java me acepte el numero de caracteres k yo kiera y al termino me haga el salto de linea automaticamente
hola kisiera saber si me pueden ayudar a hacer un programa ke al poner por ejemplo hola me regrese un aloh. GRACIAS
Hola como estas? ya sabes ocupar arreglos?simplemente llena tu arreglo de tipo string e imprimelo al reves con un for. saludos
muchas gracias si ya se como …gracias por la ayuda.
Me podria mandar un ejemplo de programa d ecompareto me urge gracias
ola me puedes ayudar con este ejercico desarrollo un prgrama que verifique si una frase es polonóromo
programa en java
mm ps io tengo q utilizar un programa q lea una cadena y determine si es un polindrome si alguien me puede explicar como se hace muchas gracias pero es para hoy …jejejeje pero q no sea mediante un panel de opciones q presente su resultado en consola … a otra cosita se tiene q crear una clase de datos y apartir de ella una de cadenas. y apartir de la de datos se tiene q hacer el programa principal mediante otra clase de la de cadenas … aver quien me puede ayudar