在這個實例中,我們將檢查一個字符串是否是 Java 中另外兩個字符串的有效重組(洗牌)。
要理解此示例,您應該了解以下Java編程主題:
class Main { //檢查結果字符串是否有效打亂第一個和第二個字符串 static boolean shuffleCheck(String first, String second, String result) { //檢查結果長度是否與 //第一和第二個結果的總和 if(first.length() + second.length() != result.length()) { return false; } //跟蹤3個字符串的每個字符的變量 int i = 0, j = 0, k = 0; //遍歷結果的所有字符 while (k != result.length()) { //檢查結果的第一個字符是否與第一個字符串的第一個字符匹配 if (i < first.length() && first.charAt(i) == result.charAt(k)){ i++; //檢查結果的第一個字符是否與第二個字符串的第一個字符匹配 }else if (j < second.length() && second.charAt(j) == result.charAt(k)){ j++; //如果字符不匹配 }else { return false; } //訪問結果的下一個字符 k++; } //在訪問結果的所有字符之后 //如果第一個或第二個有一些字符留下 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"}; //調用方法以檢查結果字符串是否為 //first 和 second 的混合 for (String result : results) { if (shuffleCheck(first, second, result) == true) { System.out.println(result + " 是 " + first + " 和" + second + "有效的重組"); } else { System.out.println(result + " 不是 " + first + " 和" + second+ "有效的重組"); } } } }
輸出結果
1XY2 是 XY 和 12 有效的重組 Y12X 不是 XY 和 12 有效的重組
在上面的示例中,我們有一個名為results的字符串數(shù)組。它包含兩個字符串:1XY2和Y12X。我們正在檢查這兩個字符串是否是有效的字符串first(XY)和second(12)。
這里,程序說1XY2是一個有效的洗牌XY和12。但是,Y12X這不是有效的洗牌。
這是因為Y12X更改了字符串的順序XY。在這里,Y用于之前X。因此,作為有效的重組,應保持字符串的順序。