2015-05-25 2 views
0

Это мой код:Java BufferedReader - последняя строка вывода не считывается автоматически, он читает только тогда, когда я нажимаю войти

public class hack 
{ 
    public static void main(String[] args) throws IOException 
    { 
     BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); 
     int count = 0; 
     int cases = Integer.parseInt(sc.readLine()); 
     String pie = "31415926535897932384626433833"; 
     String str; 
     for(int i = 0; i < cases; i++) 
     { 
      str = sc.readLine(); 
      String []strarr = str.split(" "); 
      String str1 = ""; 
      for(int k = 0; k < strarr.length; k++) 
      { 
       char check[] = strarr[k].toCharArray(); 
       count = 0; 
       for(int j = 0; j < strarr[k].length(); j++) 
       { 
        if((check[j] > 64 && check[j] < 91) || (check[j] > 96 && check[j] < 122)) 
        { 
         count++; 
        } 
       } 
       str1 = str1 + count; 
      } 
      if(str1.equalsIgnoreCase(pie.substring(0,strarr.length))) 
      { 
       System.out.println("It's a pi song."); 
      } 
      else 
      { 
       System.out.println("It's not a pi song."); 
      } 
     } 
    } 
} 

Входной файл выглядит следующим образом:

4<br> 
dHjVPihCZ BjHi OkWbQBH NIQM Ue BPIJHS ZdWQLMIxy wzVGBhx GqQjKMeJ ZmfZo l qmDWBUrs<br> 
YkoGQTJYN vgy tJ k B g YV T iXExLPfFk eL TTcOtic MRbmKE<br> 
RMSIYuD GiRYQ U K THGUT XYycRULD pTG NqlHUO RFEG rJ sqcGVd jZ IhTlGUvE FLQfISMqN cW<br> 
Rzm YPPGEQDXq PsDpNLCd qLTFiFDn wFqpGvSB YQqIZY sfWRwGJ<br><br> 

Выходной сигнал выглядит следующим образом:

dHjVPihCZ BjHi OkWbQBH NIQM Ue BPIJHS ZdWQLMIxy wzVGBhx GqQjKMeJ ZmfZo l qmDWBUrs<br> 
YkoGQTJYN vgy tJ k B g YV T iXExLPfFk eL TTcOtic MRbmKE<br> 
RMSIYuD GiRYQ U K THGUT XYycRULD pTG NqlHUO RFEG rJ sqcGVd jZ IhTlGUvE FLQfISMqN cW<br> 
It's not a pi song.<br> 
It's not a pi song.<br> 
It's not a pi song.<br> 
Rzm YPPGEQDXq PsDpNLCd qLTFiFDn wFqpGvSB YQqIZY sfWRwGJ<br> 
it's not a pi song. 
<br><br> 

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

+0

Является ли это воспроизводимым? Для меня это выглядит как зависящее от времени ввода текста и вывода результата. –

+0

Похоже, выход должен содержать только «Это песня pi» и/или «Это не песня pi». По-видимому, по какой-то причине вы показывали вход, смешанный с выходом (за исключением начального «4»). Как вы управляете этим, чтобы вход также поступал на выход? – davmac

ответ

0

После последней строки ввода вам понадобится еще один фид. BufferedReader.readLine() javadoc:

Считывает текст. Линия считается завершенной любым из строк ('\ n'), возвратом каретки ('\ r') или возвратом каретки, за которым следует сразу строка.