2017-12-03 3 views
0

拡張へ:Largest array/Comparing arrays (fresh view?)最後の要素の後に「」空白の削除

は、誰かが最後の出力番号の後に、それはそれの後にスペースを追加しないように、私は、コードを変更することができる方法私にヒント/ソリューションを与えることができますか?

import java.io.*; 
import java.util.*; 
public class Main { 
    public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
int[] productsAndCustomers = Arrays.stream(in.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray(); 
int[] hind = Arrays.stream(in.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray(); 
int[] raha = Arrays.stream(in.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray(); 

    for (int m : raha) { 
     int largest = Integer.MIN_VALUE; 
     for (int p : hind) { 
      if (p > largest && p <= m) { 
       largest = p; 
      } 
     } 
     System.out.print(largest + " "); 
    } 
    } 
} 

正しい答えを示していますが、最後の出力番号の後にその間隔が表示されないようにする必要があります。何が最良の選択肢でしょうか?

答えて

1

あなたは変数空間を作成し、このような最初の反復の後にスペースでそれを初期化することができます。

String space = ""; 
for (int m : raha) { 
    //Your code... 
    System.out.print(space + largest); 
    space = " "; 
} 
1

良いアイデアは、StringBuilderを使用することです - あなたはすべてのlargestとのために後を追加する方法append()を使用することができますループの最後の文字を取り除くには、そのdelete()メソッドを使用することができます。

1

ループではなく、通常のループを使用することをお勧めします。raha配列の最後の要素をチェックしているときにわかります。

試してみてください。

for(int i = 0; i < raha.length; i++) { 
    // Your code 
    if(raha[i] != raha.length - 1) 
     System.out.println(largest + " "); 
    else 
     System.out.println(largest); 
} 
0

は、Java 8使用している場合は、簡単な方法があります:代わりに、すぐに結果を印刷するには、コレクションにそれらを収集し、次に使用することができString.join方法:

List<String> results = new ArrayList<>(); 
for (int m : raha) { 
    int largest = Integer.MIN_VALUE; 
    for (int p : hind) { 
     if (p > largest && p <= m) { 
      largest = p; 
     } 
    } 
    results.add(Integer.toString(largest)); 
} 
System.out.println(String.join(" ", results)); 

Java 8を使用していない場合は、同様のjoinメソッドを提供するサードパーティライブラリを使用する必要があります。

結果を収集しない場合は、索引を追跡する必要があります(foreachの外側ではなく、通常のforループを使用してください)。最後の索引のスペースを省略します。

0

あなたがforループで配列を反復処理し、チェックが現在の反復が最後であるかどうかを確認する場合は、単純な実装できます。

if (i == array.length - 1) 
    System.out.print(element); 
else 
    System.out.print(element + " "); 

は、より多くの異なる方法がありますが、これは私が覚えていることができ、最も簡単なの一つです。

関連する問題