我是 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(" ");}
}
}
我的问题与在打印数字之间添加空格“”的代码有关。我想知道还有什么其他方法可以用来完成这项工作?感谢任何建议,谢谢。
最佳答案
反转字符串的简单方法是使用 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);
}
}
关于Java:打印尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383773/