簡體   English   中英

如何將字符串abcdefghijklmnop轉換為Java中的4x4矩陣?

[英]how to convert string abcdefghijklmnop to a 4x4 matrix in java?

我正在嘗試將字符串轉換為4x4大小的矩陣。 矩陣應包含與字符串相同的元素。 例如。

String="1234567890111213141516";

我需要將其轉換為Java中的4x4矩陣。

a[0][0]=1;
a[0][1]=2;

等等。 誰能建議我相同的代碼?

這是一個提示:

a[i][j] = Integer.valueOf(str.charAt(4 * i + j));

讀者應該自己弄清楚如何使用它來填充整個矩陣。

PS:這將適用於標題中的16個字符的abcdefghijklmnop字符串; 如果字符串較長,如問題所示,則沒有明確的方法將其解析為4x4矩陣。

PPS如果只需將元素設置為從1到16的連續數字,則根本不需要字符串。

確實,您的問題是一個簡單的問題,所以我用一些其他要點回答您的問題,我認為這些要點比答案本身更能幫助您:

首先,這是代碼:

int N = 4;
String delim = ",";
String s = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";
String[] c = s.split(delim);
int[][] mat = new int[4][4];
int l = 0;
for (int i = 0; i < N; i++)
    for (int j = 0; j < N; j++,l++)
        mat[i][j] = Integer.valueOf(c[l]);

筆記:

1-一個簡單的問題,不是一個真正的難題!

如果是硬件,您可以說服輔導老師定義用“,”(如果他/她堅持)之類的東西來分隔字符串,並且如果這是一個真正的項目說服客戶,那么您就不想折磨自己!

String s = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16";

2-您說過要將字符串分成4 x 4矩陣,如果要5x5矩陣怎么辦? 因此,請充分利用常量,對於定界符也應如此

int N = 4;
String delim = ",";

希望這些幫助。

您應該在字符串中運行兩個for循環,並填寫矩陣。 (這也可以用一個數組來完成,但是讓我們保持簡單。)

    String str ="1234567890111213141516";
    final int rowSize = 4;
    final int columnSize = 4;
    String[][] a = new String[rowSize][columnSize];
    // iterate
    for (int row = 0; row < rowSize; row++) {
        for (int column = 0; column < columnSize; column++) {
            a[row][column] = String.valueOf(str.charAt(rowSize * row + column));
        }
    }
    // test
    for (int row = 0; row < rowSize; row++) {
        for (int column = 0; column < columnSize; column++) {
            System.out.print(a[row][column] + " ");
        }
        System.out.println();
    }

要讀取String s = "1234567890abcdefghij" ,可以在下面添加代碼片段:

char[][] a = new char[4][4];

for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
        a[i][j] = s.charAt(4 * i + j);
    }
}

這將為您提供幫助。 這僅適用於一位數字字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM