2016-11-28 3 views
0

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

Я хочу, чтобы Java отображала эту строку «hello-funny-world» как 3 отдельные строки и сохраняла их в моем списке массивов, это что я до сих пор с этой части кода я возникли проблемы, я просто получить «привет забавный мир» рассматривается как одна строка:

while (reader.hasNext()){ 

      String nextword2 = reader.next(); 

      String nextWord3 = nextword2.replaceAll("[^a-zA-Z0-9'-]", ""); 
      String nextWord = nextWord3.replace("-", " "); 

      int apcount = 0; 
      for (int i = 0; i < nextWord.length(); i++){ 
       if (nextWord.charAt(i)== 39){ 
       apcount++; 
      } 
      } 

      int i = nextWord.length() - apcount; 


      if (wordlist.contains(nextWord)){ 
       int index = wordlist.indexOf(nextWord); 
       count.set(index, count.get(index) + 1); 

      } 
      else{ 
       wordlist.add(nextWord); 
       count.add(1); 
       if (i/2 * 2 == i){ 
        wordlisteven.add(nextWord); 
       } 
       else{ 
        wordlistodd.add(nextWord); 
       } 
      } 
+4

Вы можете просто использовать 'String # split()', вы получите массив – TheLostMind

ответ

2

Это может работать для вас ....

List<String> items = Arrays.asList("hello-funny-world".split("-"));

+0

, это имеет смысл! есть ли способ сделать это применимым ко всем строкам, которые содержат дефис? – BradleyS

+1

Да. Вы можете использовать split all String как это –

0

Учитывая, что вы используете разделитель как '-'

Я хотел бы предложить вам использовать простой раскол() Явы

String name="this-is-string"; 
String arr[]=name.split("-"); 
System.out.println("Here " +arr.length); 

Также вы сможете перебирать этот массив, используя для() петли

Надеюсь это поможет.

Смежные вопросы