我试图通过更改操作数`|` 和`&` 的位置来打印所有可能的组合。我怎样才能做到这一点?

I am trying to print all possible combination by changing the place of operands `|` and `&`. How can I achieve this?

这是通过改变逻辑运算符的位置来打印所有可能表达式的代码。

import java.util.Scanner;

public class Permute_All_List_Numbers 
{
    static void permute(int[] a, int k) 
    {
        if (k == a.length) 
        {
            for (int i = 0; i < a.length; i++) 
            {
                System.out.print(" [" + a[i] + "] ");
            }
            System.out.println();
        } 
        else 
        {
            for (int i = k; i < a.length; i++) 
            {
                int temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }

    public static void main(String args[]) 
    {

        Scanner sc = new Scanner(System.in);

        int N = 2;
        char[] sequence = new char[N];

        for (int i = 0; i < N; i++)
            sequence[i] = ('|','&');

        System.out.println("The original sequence is: ");
        for (int i = 0; i < N; i++)
            System.out.print(sequence[i] + " ");

        System.out.println("\nThe permuted sequences are: ");
        permute(sequence, 0);

        sc.close();
    }
}

我遇到如下所示的错误。 怎么办。

Permute_All_List_Numbers.java:42: error: ')' expected sequence[i] = ('|','&'); ^ Permute_All_List_Numbers.java:42: error: not a statement sequence[i] = ('|','&'); ^ Permute_All_List_Numbers.java:42: error: ';' expected sequence[i] = ('|','&');

第二个错误是

Permute_All_List_Numbers.java:48: error: incompatible types: char[] cannot be converted to int[] permute(sequence, 0);

问题是您有一个 char 数组并试图将 ('|', '&') 解析为索引。 char 数组(或任何类型的数组)中的一个元素只能包含该数组类型的一个元素。我相信你想要做的是

char[] sequence = {'|', '&'};

作为数组的减速并摆脱for循环。这将使 | 作为 sequence 数组的第一个元素,而 & 作为第二个元素。