Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: JuanMontaña en 22 de Noviembre 2015, 14:53

Título: java.lang.StringIndexOutOfBoundsException: String index out of range CU00662B
Publicado por: JuanMontaña en 22 de Noviembre 2015, 14:53
Saludos, se me presentó un problema a la hora de dar solucion a el ejercicio completo de la leccion CU00662B del curso de java. El código es:

Código: [Seleccionar]
import java.util.Scanner;
public class ComparadorLetraPorLetra
{
public static void main  (String[]args){
System.out.println ("Inserta las dos cadenas a comparas");
String cadena1="";
String cadena2="";
Scanner entradaTeclado=new Scanner(System.in);
cadena1=entradaTeclado.nextLine();
cadena2=entradaTeclado.nextLine();
for (int i=0; i < cadena1.length() || i < cadena2.length(); i++)
        {
            if (cadena1.substring (i, i+1).equals(cadena2.substring (i,i+1))) 
            {   
                System.out.println("la letra"+" "+i+" "+"es igual en las dos cadenas ");
           
            }
}
}
}

Este es el codigo hasta donde llevo bien el problema es que no se como hacer cuando una cadena es mas larga que la otra debido a que me arroja error.  Esperaré por su ayuda. Muchas gracias
Título: Re:CU00662B Comparacion de objetos
Publicado por: Lorenzo31 en 22 de Noviembre 2015, 15:36
Buenos dias, antes del for, comprueba que cadena es mas CORTA que la otra, así no te dara error, es decir;

Código: [Seleccionar]
int cadenaMenor = cadena1.length();
if (cadena2.length() < cadena1.length()) { cadenaMayor = cadena2.length(); }

for (int i=0; i < cadenaMenor; i++)
        {
            if (cadena1.substring (i, i+1).equals(cadena2.substring (i,i+1)))
            {   
                System.out.println("la letra"+" "+i+" "+"es igual en las dos cadenas ");
           
            }
el resto hasta la cadena mayor , no seran iguales nunca por carecer de esos caracteres.

Saludos.
Título: Re:java.lang.StringIndexOutOfBoundsException: String index out of range CU00662B
Publicado por: Lorenzo31 en 23 de Noviembre 2015, 10:16
Perdona donde pone cadenaMayor = cadena2.length(); va cadenaMenor, supongo que mas o menos me entendiste la idea :)

Saludos.