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

在Java中从字符串中提取有符号整数,java,string,string-split,Java,String,String Split,给定表单的字符串 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

给定表单的字符串

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中执行此操作?

您可以使用以下算法执行此操作:

使用string的方法拆分符号上的字符串 创建一个与拆分大小相同的数组数组 对于上一次拆分中的每个字符串,请拆分“@”符号上的行。 将数组设置为内部拆分的大小,并将其指定给二维数组的相应索引 对于内部拆分中的每个项,使用连续整数,并将其分配给内部数组的元素
下面的代码工作正常

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