2017-09-14 7 views
-3

配列の要素を '' | ''で区切って出力するメソッドを作成する必要があります @param値、整数の配列。ユーザーから4つの数字を入力として読み込み、それらを "|"値を分ける?

本質的には、ユーザー入力を受け取り、そこから|を分離します。これは私がこれまで持っていたものです。どのようなヘルプの亀裂?

int [] scans = new int [3]; 

System.out.println("Enter 4 Numbers into the array: "); 
Scanner scanner = new Scanner(System.in); 
int s = scanner.nextInt(); 

for (int i = 0; i < scans.length; i++) 
{ 
    scans [i] = scanner.nextInt(); 
} 
+1

私はこのコードは動作しない、またはあなたがそれについて投稿されないと仮定します。何が起こり、あなたは*何が起こると思いますか?問題をコンパイラエラーではない場合は、それらを質問に編集する必要があります。実際のサンプル入力を使用することをお勧めします。 –

+0

このコードは出力しませんでした。コンパイラのエラーは、このWebサイトに投稿する理由であってはなりません。 – progyammer

+2

3か4の数字が欲しいですか?配列には3つしか格納されませんが、ユーザーに4を入力するように要求します – baao

答えて

-1

により連結された出力に保存し、入力3数字にユーザーを要求されます罰金である(使用mapToObjソリューション@baaoを使用しなくても理解しやすいかもしれませんソリューションです、あなたの新しいJavaについて理解するのがもっと難しいかもしれません)。

まず4つの数値を配列に格納する場合、配列には3つの要素ではなく4つの要素が格納されます。あなたが使うことができる別のトリックは、配列内の値をループ内の各数字の前に付加する接頭辞変数を作成することです。最初の反復の後、プレフィックスはセパレータ変数に設定する必要があります。

あなたはここで働いて、それを見ることができます:https://ideone.com/QCNPZQ

int [] scans = new int[4]; 
System.out.println("Enter 4 numbers into the array: "); 
Scanner scanner = new Scanner(System.in); 
for (int i=0; i<scans.length; i++) { 
    scans [i] = scanner.nextInt(); 
} 

String prefix = ""; 
String result = ""; 
for(int i=0; i<scans.length; i++){ 
    result = result + prefix + scans[i]; 
    prefix = "|"; 
} 

System.out.println(result); 
0

まず、あなたはsに割り当てることにより、第1の入力数を無視しているが、あなたはそれ以降使用することはありません。結合問題については、ストリームを使用できます。以下は、あなたのint[3]、それはここで|

int [] scans = new int[3]; 
System.out.println("Enter 3 Numbers into the array: "); 
Scanner scanner = new Scanner(System.in); 
for (int i = 0; i < scans.length; i++) { 
    scans [i] = scanner.nextInt(); 
} 
String joined = Arrays.stream(scans) 
    .mapToObj(String::valueOf) 
    .collect(Collectors.joining("|")); 

System.out.println(joined); 
関連する問題