Java中的数组到矩阵表示

时间:2016-03-11 14:52:11

标签: java arrays matrix

根据我的代码,我要求用户输入一个字符串。我想将它转换为NXN大小的二维数组。虽然N可以变量,但现在考虑它是3.我想格式化用户输入的字符串,如下所示。

输入字符串:

⌐Φ┼╨¡¬╨┴╨

我想这样安排。

[⌐ Φ ┼
 ╨ ¡ ¬
 ╨ ┴ ╨]

以下是代码。

public static void main(String[] args) {

         Map<Character,Character> inputMap = new HashMap<Character,Character>();
        inputMap.put('a', '|');
        inputMap.put('b', 'β');
        inputMap.put('c', '⌐');
        inputMap.put('d', '≡');
        inputMap.put('e', '╨');
        inputMap.put('f', 'Ω');
        inputMap.put('g', '╟');
        inputMap.put('h', '¬');
        inputMap.put('i', '↔');
        inputMap.put('j', 'Σ');
        inputMap.put('k', '¥');
        inputMap.put('l', '╒');
        inputMap.put('m', '┼');
        inputMap.put('n', '«');
        inputMap.put('o', 'Φ');
        inputMap.put('p', '╔');
        inputMap.put('q', 'Є');
        inputMap.put('r', '┴');
        inputMap.put('s', 'δ');
        inputMap.put('t', '╬');         
        inputMap.put('u', '┤');
        inputMap.put('v', 'θ');
        inputMap.put('w', '●');
        inputMap.put('x', '◙');
        inputMap.put('y', 'σ');
        inputMap.put('z', '∞');

        inputMap.put(' ', '¡');

Scanner ins = new Scanner(System.in);
        System.out.println("Enter a String");
        String myData = ins.nextLine();

        char arr[]=new char[myData.length()];
    arr=myData.toCharArray();

     for(int i = 0; i < arr.length; i++) {

       arr[i]=inputMap.get(arr[i]);

      System.out.println( arr[i]);
    }

    }

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以按特定间隔打印空行,例如:

String[] array = new String[10];//your map
int n = 5;
int count = 0;
for(String element : array){
    count++;
    System.out.print(element + " ");
    if(count%n == 0){
        System.out.println();
    }
}

答案 1 :(得分:0)

String.java toCharArray()中有一种方法。这将为您提供单维数组。现在使用简单的for循环迭代它。在每次迭代中,您都可以打印字符,并在每次第N次迭代时打印一个新行。

public static void main(String[] args) {
    Scanner ins = new Scanner(System.in);
    System.out.println("Enter a String");
    String myData = ins.nextLine();
    ins.close();
    char []  oneDArray = myData.toCharArray();
    int N = 3; // or you can set it by asking the user
    char[][] twoDArray = new char[N][N];
    int size = oneDArray.length;
    boolean isEndReached = false;
    for(int row = 0; row < N ; row++ ){
        for(int col = 0; col < N; col++){
            int index = row*N + col;
            if(index >= size){
                isEndReached = true;
                break;
            }
            twoDArray[row][col] = oneDArray[index];
        }
        if(isEndReached){
            break;
        }
    }
    //printing...
    System.out.print("[");
    for(int row = 0; row < N ; row++ ){
        for(int col = 0; col < N; col++){
            System.out.print(twoDArray[row][col]+" ");
        }
        System.out.println();
    }
    System.out.print("]");
}

希望这会有所帮助......