Java:打印尾随空格

Java:打印尾随空格,java,arrays,string,Java,Arrays,String,我是Java的初学者,正在编写一个代码,该代码首先要求用户输入整数的总数,然后是整数本身。示例输入为: 4 1 4 3 2 代码需要将第二个输入反转为以下内容: 2 3 4 1 我的解决办法如下: public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int arr[] = new int[n]; for(int a

我是Java的初学者,正在编写一个代码,该代码首先要求用户输入整数的总数,然后是整数本身。示例输入为:

4
1 4 3 2
代码需要将第二个输入反转为以下内容:

2 3 4 1
我的解决办法如下:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    int arr[] = new int[n];
    for(int arr_i=0; arr_i < n; arr_i++){
        arr[arr_i] = in.nextInt();
    }
    for(int reverse_i=n-1; reverse_i>=0; reverse_i--){
        System.out.print(arr[reverse_i]);
            if(reverse_i != 0){System.out.print(" ");}
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int n=in.nextInt();
int arr[]=新的int[n];
对于(int arr_i=0;arr_i=0;reverse_i--){
系统输出打印(arr[reverse_i]);
如果(reverse_i!=0){System.out.print(“”;}
}
}

我的问题与在打印的数字之间添加空格“”的代码有关。我想知道我还能用什么方法来完成这件事?非常感谢您的任何建议。

都是关于输出格式的。您可以使用并熟悉所有可能的方法

您的代码可以通过以下两种方式进行改进:

1) 使用
\t
代替空白(
\t
是一个表格)


2) 使用如下输出格式创建一个常量:
private static final String output=“%d”
并在如下输出行中使用它:
String.format(output,number)
其中
number
是您应该打印的数字

首先反转数组,然后使用for循环打印它

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int arr[] = new int[n];
        for(int arr_i=0; arr_i < n; arr_i++)
        {
            arr[arr_i] = in.nextInt();
        }
        for(int i = 0; i < arr.length / 2; i++)
        {
            int temp = arr[i];
            arr[i] = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = temp;
        }    
        for(int i = 0; i < arr.length; i++)
        {
            System.out.print(arr[i]+" ");
        }
    }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int n=in.nextInt();
int arr[]=新的int[n];
对于(int arr_i=0;arr_i
反转字符串的简单方法是使用
StringBuilder
类:

一个选项是删除字符串末尾的空格,例如删除最后一个字符

package stackoverflow.main;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        StringBuilder sb = new StringBuilder();

        for(int arr_i = 0; arr_i < n; arr_i++){
            sb.append(in.nextInt());
            sb.append(" ");
        }

        sb.deleteCharAt(sb.length() - 1);

        String normal = sb.toString();
        String reversed = sb.reverse().toString();

        System.out.println("normal: " + normal);
        System.out.println("reversed: " + reversed);
    }
}

你尝试的方式很好,我想很抱歉我没有看到@firstMay我可以知道为什么我的问题被否决了吗?哈哈,我以2票否决票成为了你的大四学生。我不该回答我每次在这里发东西都会紧张。对失分的恐惧是如此真实!谢谢,我不知道StringBuilder。我没有否决你的答案,但我认为可能是因为\t在使用时会有多个“”。
\t
只是ASCII表中的
选项卡的表示。它将花费1个字符。
package stackoverflow.main;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        StringBuilder sb = new StringBuilder();

        for(int arr_i = 0; arr_i < n; arr_i++){
            sb.append(in.nextInt());
            if (arr_i != 3
                sb.append(" ");
        }

        String normal = sb.toString();
        String reversed = sb.reverse().toString();

        System.out.println("normal: " + normal);
        System.out.println("reversed: " + reversed);
    }
}