2016-08-17 51 views
0

私はこの入力を「HackerRankのJavaチュートリアルへようこそ!スキャナ文字列を使用して文字列を印刷

スキャナクラスによる「ウェルカム」文字列のみを印刷します。

import java.util.Scanner; 
public class Solution { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     int i = scan.nextInt(); 
     double d = scan.nextDouble(); 
     String s = scan.nextLine(); 
     scan.close(); 

     // Write your code here. 

     System.out.println("String: " + s); 
     System.out.println("Double: " + d); 
     System.out.println("Int: " + i); 
    } 
} 

解決方法

+0

このコードでは、「ようこそ」 –

+0

https://www.hackerrank.com/challenges/java-stdin-stdout/editorialを印刷することはできません。 –

+0

ようこそスタックオーバーフロー!問題を解決するための努力をして、内容の中でより良いタイトルと詳細な情報をお持ちいただけますか? – manetsus

答えて

0

入力文字列に整数と入力行に2倍の値が含まれていないことがポイントです。

あなたが12 2.56 Welcome to HackerRank's Java tutorials!を提供する場合、それは動作します:

Scanner scan = new Scanner(System.in); 
int i = scan.nextInt(); 
double d = scan.nextDouble(); 
String s = scan.nextLine(); 
scan.close(); 

System.out.println("String: " + s); 
System.out.println("Double: " + d); 
System.out.println("Int: " + i); 

Java demo

出力を参照してください:あなたはあなたの文字列が解析されますを確認するには、次をご確認ください

String: Welcome to HackerRank's Java tutorials! 
Double: 2.56 
Int: 12 

hasNextメソッドのトークン(hasNextInt()およびhasNextDouble()):

このdemoを参照してください。

+0

上記の答えは正しい答えではありません私はそれがどのように受け入れられるか分かりません – Arun

+0

@ArunそれはOPのために完璧に動作します。文字列、double値とint値を表示する[デモ](https://ideone.com/3cNTzz)を参照してください。あなたの要件は、このOPとは異なるように見えます。あなたのコードにまだ問題がある場合は、あなた自身の質問を投稿してください。 –

+1

上記の解決策がうまくいかないことを祈っています。scan.nextLine(); scan.nextDouble()の後に追加する必要があります。それが働いた。 – Arun

1

入力の読み取りトークンと入力の完全な行を読み取る間を切り替えるときは、Scannerオブジェクトが以前の読み取りを中止した行の残りの部分を読み取るため、nextLine()をもう一度呼び出す必要があります。

行に何もない場合は、単に改行を使い、次の行の先頭に移動します。

ダブル宣言した後、あなたが書く必要があります:scan.nextLine();

+0

解決策が得られました私はあなたから同じコメントを他の投稿にも投稿しました – Arun

0

をcode..Itが動作する以下の書き込みしてください!

Scanner scan = new Scanner(System.in); 
int i = scan.nextInt(); 
double d = scan.nextDouble(); 
scan.nextLine(); 
String s = scan.nextLine(); 
scan.close(); 

System.out.println("String: " + s); 
System.out.println("Double: " + d); 
System.out.println("Int: " + i); 

注:nextLine()メソッドを使用している場合がすぐnextInt()またはnextDouble()[入力のトークンを読み取り、入力のフルラインを読み込む]の方法を以下、nextInt(ことを思い出してください) nextDouble()は整数トークンを読み込みます。このため、その整数行または二重入力行の最後の改行文字はまだ入力バッファに入れられ、次のnextLine()は整数または二重線の残りの部分を読み込みます。 nextLine()。

+0

あなたのソリューション[throws 'java.util.InputMismatchException'](https://ideone.com/QuiNOu)。 –

+0

それは私のために働く.. !! –

関連する問題