2013-12-06 3 views
0

Я использую Java 1.4 для старого проекта.разделен на массивы из массива строк

У меня есть массив из Струнных

 String a[0]={"200,300"} 
     String a[1]={"700,500"} 
     String a[2]={"900,400"} 

, как так далее,

для этого мне нужно создать 2 массива строк, чтобы получить первое значение в массиве строк и второе значение другой массив строк.

например:

String a[0]="200" 
String a[1]="700" 
String a[2]="900" 

String b[0]="300" 
String b[1]="500" 
String b[2]="400" 

я не получаю, как я могу это сделать.

+0

, что бы у пытались решить эту проблему? –

+0

Подсказка: присвойте 0-й индекс данных массива массиву и 1-й индекс данных в b. Также передумайте объявление массива для созданного массива строк ... – AurA

+1

У меня была логика, как я могу создать два строковых массива, где в первом строчном массиве я могу исключить первое значение, где, как и во втором, я удалю значение после ', '. но этот код работает неправильно. – Suman

ответ

2

Глядя на ваш код, это дает вам правильное решение,

int n = 3; //This can change as your array size is not known 
String a[] = new String [n]; 
    a[0]="200,300"; 
    a[1]="700,500"; 
    a[2]="900,400"; //And So on 


String[] b1 = new String [n]; 
String[] b2 = new String [n]; 

for(int i = 0; i<n ; i++) 
{ 
    String [] numbers= a[i].split(","); 
    b1[i] = numbers[0]; 
    b2[i] = numbers[1]; 
} 
1

Сначала вы не определили массив строк как string a[1]={700,500}. Это неправильно.

И второй, Вот то, что вы хотите:

a[0]=new String[]{"200","300"}; 
a[1]=new String[]{"700","500"}; 
a[2]=new String[]{"900","400"}; 

String x[] = new String[a.length]; 
String y[] = new String[a.length]; 
for(int i=0;i<a.length;i++){ 
    x[i] = a[i][0]; 
    y[i] = a[i][1]; 
} 
+1

задана ошибка «тип выражения должен быть типом массива, но он разрешен для строки». мой код: 'String [] strId = null; Strid = req.getParameterValues ​​("Идентификатор");» – Suman

+0

Определите 'a' следующим образом:' String a [] [] = new String [3] [2]; ' –

+1

, так как я сохраняю только одно значение параметра, подобное« 200,700 ». Я не могу использовать 2Darray. :( – Suman

3

Если длина массива строк известно,

String[] newString = new String [6]; 
int count = 0; 
for(int i = 0; i<3 ; i++){ 
    newString[i] = a[i]; 
    count++; 
} 
for(int j=0; j<3; j++){ 
    newString[count] = b[j]; 
    count++; 
} 

EDIT: Раньше я получил ваш вопрос неправильно. Следующее решение поможет вам. делить a на 2 строковых массива.

String a[] = new String [3]; 
     a[0]={"200,300"}; 
     a[1]={"700,500"}; 
     a[2]={"900,400"}; 

    String[] newStr1 = new String [a.length]; 
    String[] newStr2 = new String [a.length]; 

    for(int i = 0; i<3 ; i++){ 
     String [] x= a[i].split(","); 
     newStr1[i] = x[0]; 
     newStr2[i] = x[1]; 

    } 
+2

'{200,300}' для разделения этой строки вы получаете ** {200 ** в 'x [0]', чтобы избежать 1-го ** {** я использовал 'substring()' – Prasad

+1

@dbw: почему вы удалили ваш пост, который дал мне точный результат. :) :) – Suman

+1

@upadhyaykc Я удалил, потому что думал, что элементы массива хранятся в скобках, как сказано в Prasad – dbw

Смежные вопросы