Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序来检查一个字符串是否是两个字符串的有效洗牌(重组)

Java 实例大全

在这个实例中,我们将检查一个字符串是否是 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的字符串数组。它包含两个字符串:1XY2和Y12X。我们正在检查这两个字符串是否是有效的字符串first(XY)和second(12)。

这里,程序说1XY2是一个有效的洗牌XY和12。但是,Y12X这不是有效的洗牌。

这是因为Y12X更改了字符串的顺序XY。在这里,Y用于之前X。因此,作为有效的重组,应保持字符串的顺序。

Java 实例大全