Programa Java para comprobar si una cadena es una mezcla válida de dos cadenas distintas

En este ejemplo, comprobaremos si una cadena es la mezcla válida de otras dos cadenas en Java.

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:

  • Cadena Java
  • Java while y do… while Loop

Ejemplo: compruebe si una cadena es una mezcla válida de otras dos cadenas

 class Main ( // check if result string is valid shuffle of string first and second static boolean shuffleCheck(String first, String second, String result) ( // check length of result is same as // sum of result of first and second if(first.length() + second.length() != result.length()) ( return false; ) // variables to track each character of 3 strings int i = 0, j = 0, k = 0; // iterate through all characters of result while (k != result.length()) ( // check if first character of result matches with first character of first string if (i < first.length() && first.charAt(i) == result.charAt(k)) i++; // check if first character of result matches the first character of second string else if (j < second.length() && second.charAt(j) == result.charAt(k)) j++; // if the character doesn't match else ( return false; ) // access next character of result k++; ) // after accessing all characters of result // if either first or second has some characters left if(i < first.length() || j < second.length()) ( return false; ) return true; ) public static void main(String() args) ( String first = "XY"; String second = "12"; String() results = ("1XY2", "Y12X"); // call the method to check if result string is // shuffle of the string first and second for (String result : results) ( if (shuffleCheck(first, second, result) == true) ( System.out.println(result + " is a valid shuffle of " + first + " and " + second); ) else ( System.out.println(result + " is not a valid shuffle of " + first + " and " + second); ) ) ) )

Salida

 1XY2 es una reproducción aleatoria válida de XY y 12 Y12X no es una combinación válida de XY y 12

En el ejemplo anterior, tenemos una matriz de cadenas denominada resultados. Contiene dos cadenas: 1XY2 e Y12X. Estamos comprobando si estas dos cadenas son barajas válidas de cadenas primero (XY) y segundo (12).

Aquí, el programa dice 1XY2 es una mezcla válida de XY y 12. Sin embargo, Y12X no es una mezcla válida.

Esto se debe a que Y12X ha alterado el orden de la cadena XY. Aquí, Y se usa antes que X. Por lo tanto, para ser una mezcla válida, se debe mantener el orden de la cadena.

Nota : El programa se confunde si las letras iniciales de dos cadenas coinciden. Por ejemplo, si ab12 y abb34 son dos cadenas, abbab1234 es una reproducción aleatoria válida.

Sin embargo, el programa tratará las dos primeras letras ab como parte de la primera cadena. Debido a esto, la tercera letra b no coincide con la tercera letra de la primera cadena (1) y la primera letra de la segunda cadena (a).

Articulos interesantes...