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





DISCULPEN COMO INSERTO UNA CADENA EN JAVA, ADEMAS E CONTAR CUANTAS PALABRAS CONFORMA LA CADENA SIN CONTAR LOS ESPACIOS….. AGRADESERIA MUCHO LA HAYUDA
ola oye como pudiera hacer un programa q me pueda repetir una o varias palabreas las veces q yo le indique ?????
Usa las intrucciones de control FOR o WHILE. Hay ejemplos aquí:
http://casidiablo.net/java
oye necesito que me ayudes a encontrar donde puedo consultar manuales o libros de inicios de programcion lo mas basico x fa much, gracias
Gaby puedes econtrar manuales en la web del programador… espero qeu e sirva…http://www.lawebdelprogramador.com/
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
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.
hola esta bn padre este sitio para aprender java
wewqq
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
ejerccicios de constructores de clase vehiculos eso es lo que quierp y que el usuario ingrese dato
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.
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!
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
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