Java:打印尾随空格
我是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
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);
}
}