我有一个有3列的二维数组。打印出来的时候,我要把它制表符。我对下一行使用了/t和/n,但它是以直线形式显示的,而不是以行的形式显示。我会把我的代码放进去。我该如何修复它?
package presidnetssort;
import java.io.*;
import java.util.*;
``import edu.princeton.cs.introcs.*;
public class PresidentsSort
{
public static void main(String[] args) throws FileNotFoundException
{
//Create scanner object to read the file.
Scanner x = new Scanner(new File("PresidentsGrades.txt"));
//Create a string array to hold the data from the file.
String[][] a = new String[44][3];
//Create a loop to to add the file data to the array.
for (int i=0;i<a.length;i++)
{
a[i][0]=x.next();
a[i][1]=x.next();
a[i][2]=x.next();
}
//Call the sorting methods. I am commenting them out. Uncomment them one at a time to use them.
//sortNames(a);
//sortCourses(a);
//sortGrades(a);
//Call the print method to print the a array.
print(a);
StdOut.printf("/t,/t/n",a);
}
public static void sortNames(String[][] a)
{
Arrays.toString(a);
StdOut.printf("/t",a);
}
public static void sortCourses(String[][] a)
{
Arrays.toString(a);
print(a);
}
public static void sortGrades(String[][] a)
{
Arrays.toString(a);
print(a);
}
static void print(String[][] a)
{
for (int i=0;i<a.length;i++)
{
for (int j=0;j<a[0].length;j++)
System.out.print(a[i][j]+" ");
StdOut.printf("/t,/t/n",a);
}
}
}我的输出显示为: Wasington Algorithm 98 /t,/t/nAdams Math 89 /t,/t/nJefferson Java 85 /t,/t/nMadison C# 83 /t,/t/nMonroe Web 88 /t,/t/nAdams Algorithm 81 /t,/t/n
当我去掉格式设置并且不使用StdOut.print时,它会像应该的那样按行打印,但不是以制表符的形式打印,如下所示:
沃辛顿算法98亚当斯数学89杰斐逊Java 85麦迪逊C# 83门罗网页88亚当斯算法81杰克逊Java 78布伦C# 75哈里森计算机45泰勒算法73波尔克Java 68泰勒算法88菲尔莫尔网页93皮尔斯数学56布坎南算法77林肯算法99约翰逊C# 76授予算法92海斯网页76加菲尔德计算机66亚瑟网页77克利夫兰爪哇88哈里森算法75克利夫兰C# 91 McKinley算法100罗斯福网页79塔夫特C# 86威尔逊C# 84硬化网页67柯立芝数学67胡佛历史76罗斯福历史84杜鲁门数学83艾森豪威尔历史100肯尼迪爪哇95约翰逊算法56尼克松历史23福特历史78卡特数学55里根算法99布什算法89克林顿历史45布什数学75奥巴马历史13
发布于 2016-02-27 12:56:41
制表符和换行符分别为\t和\n,请更改
StdOut.printf("/t,/t/n",a);类似这样的东西
StdOut.printf("\t,\t\n",a);和
StdOut.printf("/t",a);至
StdOut.printf("\t",a);以此类推。
https://stackoverflow.com/questions/35665849
复制相似问题