从 Java 中的字符串中提取有符号整数

Extract signed integers from string in Java

给定一个形式为

的字符串
string str= "-1@10@-1#10@-1@10#-1@10@-1"

一行中的数字用'@'分隔,行之间用'#'分隔 所以上面的行计算为以下矩阵:

-1     10    -1
 10    -1    10
-1     10    -1

此外,数字可以是任何数字(不一定是-1和10)另一个例子是

srting str= "1@10@1#10@2@10#1@10@1"

应该计算为

  1     10     1
 10      2    10
  1     10     1

如何在 Java 中执行此操作?

您可以使用以下算法来完成:

  • 使用Stringsplit(...)方法
  • 拆分'#'符号上的字符串
  • 创建一个数组的数组,其大小为分割
  • 对于之前拆分中的每个字符串,在 '@' 符号处拆分行。
  • 做一个内切分大小的数组,赋给二维数组对应的索引
  • 对于内部拆分中的每个项目,使用Integer.parseInt,并将连续的整数分配给内部数组的元素

下面的代码工作正常

public class matrix{

public static void main(String []args)
{

    String string="-1@10@-1#10@-1@10#-1@10@-1" ;
    String[] rows = string.split("#");

    for(int j=0;j<rows.length;j++)  
    {    
        String[] cols= rows[j].split("@");
        int[][] matrix = new int[rows.length][cols.length];
        for(int k=0;k<cols.length;k++)
        {   
            matrix[j][k]=Integer.parseInt(cols[k]);
            System.out.print(matrix[j][k]+"  ");
        }
        System.out.println();
    }
  }
}

给出输出

-1  10  -1
10  -1  10
-1  10  -1