Разделение строки CSV с помощью Regex в Java

Научитесь разделять CSV(значения, разделенные запятыми) и сохранять токены в массиве или списке в Java, используя простые и понятные примеры.

1. Разделение CSV с помощью регулярного выражения

Мы можем использовать регулярное выражение «\\s*,\\s*» для сопоставления запятых в строке CSV, а затем использовать метод String.split() для преобразования строки в массив токенов.

String blogName = "how, to, do, in, java";String[] tokenArray = blogName.split("\\s*,\\s*");Assertions.assertArrayEquals(new String[]{"how", "to", "do", "in", "java"}, tokenArray);

Обратите внимание, что rex заботится о дополнительных нежелательных пробелах в строке и токенизирует только нужные строки. В следующем примере обратите внимание на нежелательные множественные пробелы между запятыми.

Assertions.assertArrayEquals(new String[]{"a", "b", "c"}, "a, b,c".split("\\s*,\\s*"));Assertions.assertArrayEquals(new String[]{"a", "b", "c"}, "a, b, c".split("\\s*,\\s*"));

3. Преобразовать массив в список

Чтобы получить список токенов, мы можем передать массив методу Arrays.asList(), который возвращает неизменяемый список фиксированного размера, доступный только для чтения, поддерживаемый массивом.

String[] tokenArray = blogName.split("\\s*,\\s*");List<String> tokenList = Arrays.asList(tokenArray);

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

ArrayList<String> tokenArrayList = new ArrayList(Arrays.asList(tokenArray));

3. Преобразовать список в строку CSV

Если мы хотим преобразовать список в CSV, то мы можем использовать метод String.join(), предоставляемый Java 8.

List<String> list = Arrays.asList("how", "to", "do", "in", "java");String result = String.join(",", list); //delimited by commaAssertions.assertEquals("how,to,do,in,java", result);

Приведенные выше примеры помогут преобразовать CSV в список и список в CSV в Java.

Читать далее:

Исходный код на Github

Прокрутить вверх