在java错误中初始化一个字符串

时间:2017-01-15 10:45:05

标签: java

在netbeans上运行此代码时,它总是运行if语句块,但是在HackerRank代码编辑器上编译时,它总是进入else语句。帮我解决错误。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;


class Person {

public static void main(String[] args) throws Exception{
    Scanner sc=new Scanner(System.in);
    BufferedReader sb=new BufferedReader(new InputStreamReader(System.in));
    int T=sc.nextInt();
    for(int j=0;j<T;j++)
        {String s="";
         s=sb.readLine();
         StringBuffer even=new StringBuffer();
         StringBuffer odd=new StringBuffer();
         if(s!=null)
         {for(int i=0;i<s.length();i++)
         {
             if(i%2==0)
                 even.append(s.charAt(i));
             else
                 odd.append(s.charAt(i));
         }

        System.out.println(even+" "+odd);
        }
         else
             System.out.println("Enter some input");
        }
   }
 }

1 个答案:

答案 0 :(得分:0)

为什么同时使用scannerbufferedreader?请尝试使用扫描仪中的next()方法

s=sc.next();

如果您想使用bufferedreader,请尝试使用这两个语句。

int T=Integer.parseInt(sb.readLine());
for(int j=0;j<T;j++)
{
    String s=sb.readLine();

如果同时让scannerbufferedreader听取输入流的输入,那么bufferedreader将如何知道输入被读取的位置? (但scanner知道它) 这就是它返回null的原因。我希望你理解它。

为了简单起见,只需使用scannerbufferedreader,而不是两者。