Я хочу извлечь строки из строки - PullRequest
0 голосов
/ 01 июля 2018

Ниже содержание доступно в текстовом файле. Я хочу извлечь данные (имя, возраст, опыт работы, должность). Как я могу сделать? Я пытался извлечь, используя JavaTokenizer и функцию разделения. Но не может извлечь данные.

Name                                     Age                   Working Experience          Position                     
John                                     23                    10                          Team Leader                          
Christian Elverdam                       27                    7                           Director                    
Niels Bye Nielsen                        59                    16                          Composer
Rajkumar Hirani                          40                    23                          Director               
Vidhu Vinod Chopra                      58                    21                          Screenplay

Ожидаемый выход:

John              |23|10|Team Leader|
Christian Elverdam|27|7 |Director   |
Niels Bye Nielsen |59|16|Composer   |
Rajkumar Hirani   |40|23|Director   |
Vidhu Vinod Chopra|58|21|Screenplay |

1 Ответ

0 голосов
/ 01 июля 2018

Не использовать StringTokenizer:

StringTokenizer - это устаревший класс, который сохраняется из соображений совместимости, хотя его использование не рекомендуется в новом коде . Всем, кто ищет эту функцию, рекомендуется использовать метод split из String или пакет java.util.regex.

Вы можете использовать split(), если разбить на 2 или более пробелов: split(" {2,}")

Демо

String input = "Name                                     Age                   Working Experience          Position                     \n" +
               "John                                     23                    10                          Team Leader                          \n" +
               "Christian Elverdam                       27                    7                           Director                    \n" +
               "Niels Bye Nielsen                        59                    16                          Composer\n" +
               "Rajkumar Hirani                          40                    23                          Director               \n" +
               "Vidhu Vinod Chopra                      58                    21                          Screenplay\n";

List<String[]> rows = new ArrayList<>();
try (BufferedReader in = new BufferedReader(new StringReader(input))) {
    in.readLine(); // skip header line
    for (String line; (line = in.readLine()) != null; ) {
        rows.add(line.split(" {2,}"));
    }
}
for (String[] row : rows)
    System.out.println(Arrays.toString(row));

выход

[John, 23, 10, Team Leader]
[Christian Elverdam, 27, 7, Director]
[Niels Bye Nielsen, 59, 16, Composer]
[Rajkumar Hirani, 40, 23, Director]
[Vidhu Vinod Chopra, 58, 21, Screenplay]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...