разделить уже разделенную строку массива в Java - PullRequest
0 голосов
/ 24 октября 2018

У меня есть CSV, который был прочитан и разделен на 3 разных CSV.CSV был разделен по конвейеру, а переменная split сохранена в строковой переменной.Я хочу разделить новую строку как строку, разделенную запятыми, но как только я это сделаю, она выдаст исключение.затем разделите второй столбец через запятую.

Буду признателен за любую помощь, поскольку я новичок.

добавил код, разделяющий CatId:

String[] temp = CatId.split(",",-1);
System.out.println(temp[1]);

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

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

// this source string: serveral columsn with different separators
String str = "209|4900,10368,11093,11581";

Согласно вашему коду, вы пытаетесь поместить все отдельные числа в строковый массив, выполнив два шага:

String[] arr = str.split("\\|");    // not line.split("\\|,",-1)
// arr[0] = 209
// arr[1] = [4900,10368,11093,11581]
String[] tmp = arr[1].split(",")
// tmp[0] = 4900
// tmp[1] = 10368
// tmp[2] = 11093
// tmp[3] = 11581

Если это так, вы можете сделать это за один шаг:

String[] arr = str.split("[\\|,]");
// arr[0] = 209
// arr[1] = 4900
// arr[2] = 10368
// arr[3] = 11093
// arr[4] = 11581
0 голосов
/ 24 октября 2018

Вы хотите установить предел .split (..) равным 2.

 while ((line = br1.readLine()) != null) {
    String[] value1 = line.split("\\|",2);
    String Id = value1[0];
    String CatId=value1[1]
};

Для дальнейшего разделения контекста "CatId" используйте:

// if you need to replace unwanted chars first, you could just use the simple .replace:
CatId = CatId.replace("\"", "").replace("[", "").replace("]", "");
// Then, split the array just by ,
String[] catIdArray = CatId.split("\\,");
...