删除最后一个元素后的空格“”

时间:2017-12-03 17:44:46

标签: java arrays space

扩展名为: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 + " ");
    }
  }
}

虽然它显示了正确的答案,但它必须是在最后一个输出数字之后不显示间距。什么是最好的选择?

5 个答案:

答案 0 :(得分:1)

您可以创建一个变量空间,并在第一次迭代后使用空格对其进行初始化,如下所示:

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

答案 1 :(得分:1)

好主意是使用StringBuilder - 您可以使用方法append()添加所有largest,在for循环之后,您可以使用其delete()方法来摆脱最后一个角色。

答案 2 :(得分:1)

我建议只使用常规的,而不是增强的for循环,这样您就可以知道何时检查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);
}

答案 3 :(得分: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方法的第三方库。

如果您不想收集结果,则必须跟踪索引(因此请使用常规for循环而不是foreach)并省略最后一个索引的空间。

答案 4 :(得分:0)

你可以使用for循环迭代数组并实现简单,如果检查当前迭代是否是最后一次:

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

还有更多不同的方式,这是我记忆中最容易的方法之一。

相关问题