2016-04-23 4 views
-5

Эй, ребята у меня есть следующие строки:Как извлечь слова из строки в Java

NAME   Problem MAXIMIZE 

Это является частью файла, который я прочитал построчно. Я хочу, чтобы извлечь слово

Проблема

без widespaces и удалить другие слова

ИМЯ и разворачивать

и сохранить результат в переменная.

Вот код:

public void read(String datName) throws IOException { 
    String data = ""; 

    try { 
     BufferedReader br = new BufferedReader(new FileReader(datName)); 
     String zeile = ""; 

     try { 
      while ((zeile = br.readLine()) != null) { 
       data = data + zeile + "\r\n"; 
       lines.add(zeile); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
      br.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } catch (FileNotFoundException e) { 

     e.printStackTrace(); 
    } 
    System.out.println(data); 
    this.data = data; 
} 

public void split() { 

    for (int i = 0; i < lines.size(); i++) { 
     if (lines.get(i).contains("NAME")) { 
      headerName = lines.get(i). 
    // If the String contains "NAME" it should give me the NAME which is "Problem" in my example 

     } 
    } 

Я читаю файл построчно и сохранить его в ArrayList. Я просто хочу важную информацию. Я не ожидаю, что алгоритм для этого просто даст мне несколько слов, которые я могу найти для этой проблемы.

+0

Попытайтесь найти какое-то решение и предложить его! – granmirupa

+0

Вы хотите только это или это часть какой-то более крупной проблемы, и это просто пример !? Что вы пробовали раньше. Пожалуйста, код –

+1

Что вы пробовали? Какова ваша конкретная проблема с этим? Не ожидайте, что мы просто дадим вам код/​​алгоритм. – bcsb1001

ответ

1

Вы можете разбить строку на основе пробелов.

String myStr; //set this variable to your string 
String[] splitOnWhiteSpace = myStr.split(" "); 

Затем вы можете цикл по каждому элементу массива:

String toFind; //set this with what you want to find 
for (String word : splitOnWhiteSpace) { 
if (word.equals(toFind)) { 
    //the word matches - do something with it 
} 
} 
0

Вы также можете использовать StringTokenizer:

StringTokenizer st = new StringTokenizer(line); 
while (st.hasMoreTokens()){ 
     If(st.nextToken().equals("Problem").......AND so 
} 
1

Вы могли бы использовать что-то вроде этого:

String[] strs = in.split(" "); 
in = strs[1]; 

Остерегайтесь! Я не пробовал это.

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