Java разбить строку в массив по новой строке - PullRequest
0 голосов
/ 15 марта 2020

Редактировать: Я изменил вопрос для простоты.

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

public class Test {
    public static void main(String[] args) throws IOException {
        String test = "Michael Porter Jr. 2018-19 Panini Prizm Silver Prizm PSA 10 Gem Mint! Hot! ?? \n 2018 Prizm Silver MICHAEL PORTER JR. RC PSA 10 Gem Mint";
        System.out.println(test);
        String[] test_split = test.split("\\r?\\n");
        for (String t : test_split) {
            System.out.println(test_split.toString());
        }

    }

}

Мой код возвращает это:

Michael Porter Jr. 2018-19 Panini Prizm Silver Prizm PSA 10 Gem Mint! Hot! ?? 
 2018 Prizm Silver MICHAEL PORTER JR. RC PSA 10 Gem Mint
[Ljava.lang.String;@4a574795
[Ljava.lang.String;@4a574795

Я действительно ожидал иметь массивы с двумя именами (разделенными символом новой строки), но я получил кое-что странное. Как я могу это исправить, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 15 марта 2020

Похоже, вы печатаете массив строк, а не строку, судя по опубликованному вами выводу, не понимая, каким образом вы на самом деле вызываете, например, println. Если это действительно так, вы также можете использовать:

Arrays.toString(yourArray);
1 голос
/ 15 марта 2020

Может быть лучше, если вы поменяли местами массивы. Сделайте их 2xN вместо Nx2 Вот сегмент вашего метода.

         String[][] nameAndPrice = new String[2][listingName_extract.length];

         for (int i = 0; i < listingName_extract.length; i++) {
              nameAndPrice[0][i] = String.valueOf(listingName_extract[i]);
              nameAndPrice[1][i] = String.valueOf(listingPrice_extract[i]);
          }
         return nameAndPrice;

И вам, вероятно, следует использовать Arrays.toString () для распечатки массива.

System.out.println(Arrays.toString(nameAndPrice[0]);
System.out.println(Arrays.toString(nameAndPrice[1]);

Тогда, если вы хотите напечатать их рядом.

 for (int i = 0; i < listingName_extract.length; i++) {
     System.out.println(nameAndPrice[0][i] + " " + nameAndPrice[1][i]);
 }
0 голосов
/ 15 марта 2020

Как предложили пользователи TheThingAboveMe и Andreas, я должен смотреть на t (строки), а не на test_split (сам массив).

Я также редактировал свой код для каждого пользователя W JS предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...