2015-09-12 1 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

Вы можете сделать это с помощью алгоритма ниже:

  • разделить строку на '#' знак, используя String «s split(...) метод
  • Сделать массив массивов размером расколе
  • Для каждая строка в предыдущем сплите, разделите строку на знак '@'.
  • Сделать массив размера внутреннего раскола, и назначить его к соответствующему индексу 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(); 
    } 
    } 
} 

Давать OUTPUT

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