簡體   English   中英

在java錯誤中初始化字符串

[英]Initializing a string in java error

在 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");
        }
   }
 }

你為什么同時使用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不要同時使用兩者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM