Ebben a példában ellenőrizni fogjuk, hogy egy karakterlánc a Java két másik karakterláncának megfelelő keverése.
A példa megértéséhez ismernie kell a következő Java programozási témákat:
- Java karakterlánc
- Java közben és csináld … míg a hurok
Példa: Ellenőrizze, hogy egy karaktersorozat két másik karaktersorozat érvényes-e
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); ) ) ) )
Kimenet
Az 1XY2 az XY és a 12 érvényes keverése, az Y12X pedig nem érvényes az XY és 12 keverése
A fenti példában van egy string nevű tömb, amelynek neve eredmény. Két húrot tartalmaz: 1XY2 és Y12X. Ellenőrizzük, hogy ez a két karakterlánc érvényes-e az első (XY) és a második (12) húrok keverése.
Itt a program szerint az 1XY2 az XY és a 12 érvényes keverése. Az Y12X azonban nem érvényes keverés.
Ennek oka, hogy az Y12X megváltoztatta az XY karakterlánc sorrendjét. Itt Y-t használunk X előtt. Ezért, hogy érvényes keverés legyen, a karakterlánc sorrendjét fenn kell tartani.
Megjegyzés : A program összezavarodik, ha két karakterlánc kezdőbetűje egyezik. Például, ha AB12 és abb34 két húrok, akkor abbab1234 érvényes shuffle.
A program azonban az első két ab betűt az első karakterlánc részeként kezeli . Emiatt a harmadik b betű nem egyezik az első karakterlánc harmadik betűjével (1) és a második karakterlánc első betűjével (a) sem.