2015-09-12 34 views
-1

簽署從字符串整數給出的形式提取物中的Java

string str= "[email protected]@-1#[email protected]@10#[email protected]@-1" 

連續的號碼都被'@'分離,並且將行由'#' 因此上述線計算以下矩陣分開的字符串:

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

同樣數目可以是任何數目(不一定-1和10)另一個例子是

srting str= "[email protected]@1#[email protected]@10#[email protected]@1" 

應該計算到

1  10  1 
10  2 10 
    1  10  1 

如何在Java中做到這一點?

回答

6

您可以使用下面的算法做:

  • 拆分對'#'符號與字符串,用Stringsplit(...)方法
  • 讓數組的數組分割
  • 的尺寸。每個字符串在前面的分割中,分割'@'符號上的行。
  • 製作一個陣列內分裂的大小,並將其分配給2D陣列
  • 對於內裂的每個項目的對應索引,使用Integer.parseInt,並分配連續整數到內陣列的元件
-1

下面的代碼工作正常

public class matrix{ 

public static void main(String []args) 
{ 

    String string="[email protected]@-1#[email protected]@10#[email protected]@-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