2015-10-24 3 views
2

Я пытаюсь отфильтровать запятые и пробелы из ввода файла. Я возвращает строку ввода (например, ниже, и передавая эту линию к способу, который отфильтровывают запятые и начальные и конечные пробелы)Удаление конечных и ведущих пространств

John Paul Claurigh, Craig Megan, Bob a’ Chores 

следует фильтровать до трех отдельных строк в массиве.

John Paul Claurigh 
Craig Megan 
Bob a’ Chores 

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

public void listConverter(String list){ 
String[] array=listConverter.split(","); 
for(int i=0; i<array.length; i++){ 
    addSubject(array[i]); 
} 

Могу ли я использовать метод split, чтобы избавиться от переднего и заднего пробелов?

+2

'.split (\\ S *, \\ S *);' искать запятую с или без окружающей пустого пространства. Регулярное выражение будет жадным и проглотит все пробелы. –

+0

Разделить на ','. , – Tushar

ответ

0

Простой разрыв с пробелом после запятой больше, чем достаточно

String s = "John Paul Claurigh, Craig Megan, Bob a’ Chores"; 
String[]tokens = s.split(", ");//note the space after comma. 
System.out.println(Arrays.toString(tokens)); 
+0

Это не удаляет все начальные и хвостовые пространства, как было задано в вопросе. Он просто работает на одном примере, заданном в вопросе. –

2

Попробуйте что-то вроде:

String[] array = s.split("\\s*,\\s*"); 

Что значит разделить на любое количество (0..n) пробелы до и после запятая (,).

Выход:

<John Paul Claurigh> 
<Craig Megan> 
<Bob a’ Chores> 
+0

@Neuron, вы не можете использовать trim() для метода split(). Ответ SMA верен тому, что было задано. OP хочет расколоться, а также заботиться о ведущих/конечных пробелах в одном выражении. Quoting - метод _split, чтобы избавиться от начального и конечного пробелов_ –

1

Ваш код кажется правильным, просто используйте trim() удалить ведущие/конечные пробелы

public void listConverter(String list){ 
String[] array=listConverter.split(","); 
for(int i=0; i<array.length; i++){ 
    addSubject(array[i].trim()); 
} 
0

Вы можете попробовать это:

public void listConverter(String list){ 
String[] array=listConverter.split("\\s*,\\s*"); 
for(int i=0; i<array.length; i++){ 
    addSubject(array[i]); 
} 

Он разделит на запятую с или без каких-либо ведущих/конечных пробелов.

0

Ява 8 цветопередача

String fileInput = "John Paul Claurigh, Craig Megan , Bob a’ Chores "; 

    List<String> namesList = Pattern.compile(",\\s") 
      .splitAsStream(fileInput) 
      .map(name -> name.trim()) 
      .collect(Collectors.toList()); 


    namesList.forEach(name -> System.out.println("NAME: " + name)); 

ВЫХОДА

NAME: John Paul Claurigh 
NAME: Craig Megan 
NAME: Bob a’ Chores 
Смежные вопросы