Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 程序來(lái)檢查一個(gè)字符串是否是兩個(gè)字符串的有效洗牌(重組)

Java 實(shí)例大全

在這個(gè)實(shí)例中,我們將檢查一個(gè)字符串是否是 Java 中另外兩個(gè)字符串的有效重組(洗牌)。

要理解此示例,您應(yīng)該了解以下Java編程主題:

示例:檢查一個(gè)字符串是否是另外兩個(gè)字符串的有效重組

class Main {

  //檢查結(jié)果字符串是否有效打亂第一個(gè)和第二個(gè)字符串
  static boolean shuffleCheck(String first, String second, String result) {

    //檢查結(jié)果長(zhǎng)度是否與
    //第一和第二個(gè)結(jié)果的總和
    if(first.length() + second.length() != result.length()) {
      return false;
    }
    //跟蹤3個(gè)字符串的每個(gè)字符的變量
    int i = 0, j = 0, k = 0;

    //遍歷結(jié)果的所有字符
    while (k != result.length()) {

      //檢查結(jié)果的第一個(gè)字符是否與第一個(gè)字符串的第一個(gè)字符匹配
      if (i < first.length() && first.charAt(i) == result.charAt(k)){
        i++;

      //檢查結(jié)果的第一個(gè)字符是否與第二個(gè)字符串的第一個(gè)字符匹配
      }else if (j < second.length() && second.charAt(j) == result.charAt(k)){
        j++;

      //如果字符不匹配
      }else {
        return false;
      }

      //訪問(wèn)結(jié)果的下一個(gè)字符
      k++;
    }

    //在訪問(wèn)結(jié)果的所有字符之后
     //如果第一個(gè)或第二個(gè)有一些字符留下
    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"};

    //調(diào)用方法以檢查結(jié)果字符串是否為
    //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+ "有效的重組");
      }
    }
  }
}

輸出結(jié)果

1XY2 是 XY 和 12 有效的重組
Y12X 不是 XY 和 12 有效的重組

在上面的示例中,我們有一個(gè)名為results的字符串?dāng)?shù)組。它包含兩個(gè)字符串:1XY2和Y12X。我們正在檢查這兩個(gè)字符串是否是有效的字符串first(XY)和second(12)。

這里,程序說(shuō)1XY2是一個(gè)有效的洗牌XY和12。但是,Y12X這不是有效的洗牌。

這是因?yàn)閅12X更改了字符串的順序XY。在這里,Y用于之前X。因此,作為有效的重組,應(yīng)保持字符串的順序。

Java 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清