2016-07-02 6 views
0

私はこのプログラムを試してきました。しかし、私は必要な出力を得ていません。JavaのConcat()

import java.util。*;

class MiscTest { 

    public static void main(String[] args) { 

     int i = 10; 
     double d = 4.0; 
     String s = "Lavante "; 

     Scanner scanner = new Scanner(System.in); 

     int j; 
     double dd; 
     String ss; 

     j = scanner.nextInt(); 
     dd = scanner.nextDouble(); 
     ss = scanner.next(); 

     System.out.println("\n" + (i + j)); 
     System.out.println(d + dd); 
     System.out.println(s.concat(ss)); 

    } 
} 

私が与えてくれた入力:

Input

私が得た出力:

Output

私は文全体を必要とし、出力として "Lavanteはマセラティからです" 。しかし、私はSecond Stringから一言だけを得ています。助けて。 ありがとうございます。あなたもnext()

を使用して空白区切りで停止Scanner、そうでない場合はnextLine()を使用する必要が

+1

コードを投稿してください。スクリーンショットではありません。 –

+0

コードのスクリーンショットを投稿しないようにしてください。スクリーンショットを作成することは、テキストをコピーして貼り付けることよりも難しくなります。 –

答えて

1

は、私はあなたがdouble変数の入力を提供した後にボタンを入力してヒットしていると思います。コードスニペットを試してください。

dd = scan.nextDouble(); 
ss = scan.nextLine().trim(); 
if (ss.isEmpty()) { 
    ss = scan.nextLine(); 
} 
+0

パーフェクト。私が望むように。ありがとうございました。 –

+0

私が間違っていない場合、あなたはHackerRankの毎日の課題を解決しています。右? – piechuckerr

3

は、scanner.nextDouble()を使用した後、すぐ下のように、前の呼び出しによって読み取らない文字の残りの部分を消費するscanner.next()を使用しています。

dd = scanner.nextDouble(); 
scanner.next(); 
ss = scanner.nextLine(); 
+0

nextLine()を使用すると、2番目の文字列を入力できなくなります。私はintとdoubleだけを入力することができました。 –

+0

@DheerajVuppuluriさて、私の編集を読んでください。 –

+0

@DheerajVuppuluri @DheerajVuppuluriは私の答えをチェックします – piechuckerr

3

Scanner#next()最初の空白まで読み取ります。あなたが行の最後まで読みたい場合は、代わりにnextLine()を使用する必要があります:あなたは現在空白

前にのみ文字列を取るために使用される次の()関数を使用している

ss = scanner.nextLine(); 
2

を仮定入力:Hello Worldの ユーザー次の()

出力を使用して続いた場合:こんにちは

は使用nextLine()

ラインの最後までの文字列を取るために、

入力:nextLineを(使用しているユーザの場合のHello World ) 出力:Hello Worldの

+0

nextLine()を使用すると、2番目の文字列を入力できません。私はintとdoubleだけを入力することができました。 –

+0

文字列 –

+1

を入力した後、Enterキーを押す必要があります。ありがとうございました! –