我是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(" ");}
}
}
我的问题与在打印数字之间添加空格“”的代码有关。我想知道我可以用其他方式来完成这项工作?任何建议表示赞赏,谢谢。
答案 0 :(得分:2)
反转字符串的简便方法是使用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);
}
}
另一种选择是检查您是否处于循环的最后arr_i
。
如果是这样,那么就不要添加空格
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);
}
}
答案 1 :(得分:0)
首先反转数组然后用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]+" ");
}
}
}
答案 2 :(得分:-1)
关于输出格式化。您可以使用this examples并熟悉所有可能的方法。
您的代码可以通过以下两种方式进行改进:
1)使用\t
代替空格(\t
是制表符号)
2)使用类似private static final String output = "%d "
的输出格式创建一个常量,并在输出行中使用它,如下所示:String.format(output, number)
其中number
是您应该打印的数字。