繁体   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