打乱六个字符并打印数组的排列

To shuffle six characters and print the permutation of an array

我正在尝试通过打乱字符来打印字符数组。我也看到了其他帖子,但希望提出我自己的朴素算法。这是代码:

public class Carbon{
    public static void main(String args[]){
        Char A = new Char[6] {'c','a','r','b','o','n'};
        for (int i=0;i<6;i++) {
            for (int j=0;j<6;j++) {
                if(i<=j) {
                    for (int k=i;k<=j;k++)
                        System.out.print(A[k]);
                }
                else{
                    for (int k=i;k>=j;k--)
                        System.out.print(A[k]);
                }
            }
        }
    }
}

发生以下错误:

 Carbon.java:3: error: ';' expected
        Char A = new Char[6] {'c','a','r','b','o','n'};
                            ^
Carbon.java:3: error: not a statement
        Char A = new Char[6] {'c','a','r','b','o','n'};
                              ^
Carbon.java:3: error: ';' expected
        Char A = new Char[6] {'c','a','r','b','o','n'};
                                 ^
3 errors

脑洞大开1个多小时调试失败。请帮忙

改成char[] a = new char[]{'c', 'a', 'r', 'b', 'o', 'n'}; 如果使用 String 类型,访问单个字符有点笨拙。

这里有几个问题。

  • Char 用于一个名为class的"Char",如果要使用原始类型,名字尽量小写"char"

所以在你的情况下:

Char A = new Char[6] {'c','a','r','b','o','n'};

必须变成

char A = new char[6] {'c','a','r','b','o','n'};

但现在它仍然不起作用,因为您正试图将一个唯一的字符绑定到一个字符数组

所以在这里,代码必须固定为:

char[] A = new char[6] {'c','a','r','b','o','n'};

现在还有最后一个问题,你同时有一个新数组和一个静态数组。因此,要么设置变量 "A"(按照惯例名称应为小写),要么分配静态数组。

让我们坚持使用第二个选项,您的代码将变为:

char[] A = {'c','a','r','b','o','n'};

现在可以使用了

输出将是: ccacarcarbcarbocarbonacaaararbarboarbonracrarrbrborbonbracbrabrbbobonobracobraobroboonnobracnobranobrnobnon