在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