2015-03-17 2 views
-6

Как можно удалить строки, которые содержит * с использованием ядра Java, например: -Как удалить строки, содержащие '*', используя ядро ​​Java?

hello how are you. 
what are you * doing. 

В приведенном выше примере, я должен удалить всю строку, которая содержит what are you * doing* в строке.

+0

что-то вроде этого: 'for (строка строки: строки) {if (line.indexOf ('*') == -1) lineList.add (строка); else {/ * ignore line * /}} ' – morgano

+0

Вы читали строки из файла или это строки, которые вы получаете по одному? – Zorian

ответ

0

Я новичок в Java, так что если что-то неправильно пожалуйста, поправьте меня, но я хотел бы предложить, если вы читали из файла:

FileInputStream fstream = new FileInputStream("file.txt"); 
BufferedReader bf = new BufferedReader(new InputStreamReader(fstream)); 


String s = bf.readLine(); 

if(s!=null) 
{ 
    if(s.contains("*")) 
    { 
     s=""; 
    } 
    else 
    { 
    //work with the rest of your line stored in String 
    } 
} 

поставить его в петлю (например, for или while)

+0

'java.io.BufferedReader' не имеет _default_ (пустой) конструктор, ему нужен' Читатель'. Кроме того, '' 'может быть' null', если вы достигнете конца потока. Вы должны это проверить. – Albert

+0

@ Альберт изменил его, я надеюсь, что он подходит сейчас;) – Zorian

+1

@ То, что я ошибался;) Я исправил его и сформировал свой код – Zorian

1

Я думаю, что это будет работать нормально для вашей проблемы ::

String s="hello how are you. \nwhat are you * doing."; 
    String p[]=s.split("\n"); 
    StringBuffer sb=new StringBuffer(); 
    for(String n:p) 
    { 
     if(n.contains("*")) 
     { 
      //do nothing 
     } 
     else{ 
      sb.append(n); 
      sb.append("\n"); 
     } 
    } 
    System.out.println(sb); 
1

он будет работать ..

String str="hello how are you. \nwhat are you * doing."; 
    str.replace("*",""); 
Смежные вопросы