Dalam contoh ini, kita akan memeriksa sama ada rentetan merupakan rombakan yang betul dari dua rentetan lain di Java.
Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan Java berikut:
- Rentetan Java
- Java sambil dan lakukan … sambil Loop
Contoh: Periksa sama ada rentetan adalah rombakan yang betul dari dua rentetan lain
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); ) ) ) )
Pengeluaran
1XY2 adalah rombakan sah XY dan 12 Y12X bukan rombakan XY dan 12 yang sah
Dalam contoh di atas, kami mempunyai susunan rentetan bernama hasil. Ia mengandungi dua tali: 1XY2 dan Y12X. Kami sedang memeriksa apakah kedua-dua tali ini adalah rentetan rentetan yang sah pertama (XY) dan kedua (12).
Di sini, program mengatakan 1XY2 adalah rombakan XY dan 12. yang sah. Walau bagaimanapun, Y12X bukan rombakan yang sah.
Ini kerana Y12X telah mengubah susunan rentetan XY. Di sini, Y digunakan sebelum X. Oleh itu, untuk menjadi rombakan yang sah, urutan tali harus dipelihara.
Catatan : Program ini menjadi keliru jika huruf awal dua rentetan sesuai. Sebagai contoh, jika ab12 dan abb34 adalah dua rentetan, maka abbab1234 adalah rombakan yang sah.
Walau bagaimanapun, program ini akan memperlakukan dua huruf pertama ab sebagai sebahagian daripada rentetan pertama. Oleh kerana itu, huruf ketiga b tidak sesuai dengan huruf ketiga dari string pertama (1) dan huruf pertama dari string kedua (a).