在這個實例中,我們將檢查一個字符串是否是 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。因此,作為有效的重組,應保持字符串的順序。