以java格式打印行

时间:2015-04-22 16:29:50

标签: java

所以我的项目是实现分页,回想一下分页与交换不同,它允许进程的内存在帧中被分解。我唯一的问题是我必须打印这个结构。所以#' A4' ,' E4'因为这些是示例,但是处理了280帧。因此char存储在String []内存中。我必须打印这些内存,其中说明的是alp和数字的2字符串字符。 完成后需要看起来像这样:

        04        09        14        19        24        29
--------++--------||--------++--------||--------++--------||
A1D5F7E5E3R3Q1Q2R5Y7A1D5F7E5E3R3Q1Q2R5Y7A1D5F7E5E3R3Q1Q2R5Y7
        31        33        35        37        39        41
--------++--------||--------++--------||--------++--------||
A1D5F7E5E3R3Q1Q2R5Y7A1D5F7E5E3R3Q1Q2R5Y7A1D5F7E5E3R3Q1Q2R5Y7

因此,top是字符串数组位置的增量,仅显示从00开始的第5个字符串。 那么我们只有------- ++ ------只是为了看起来我猜。 然后最后一行是String []内存以及该数组中的内容。

这是我到目前为止所做的:

    public static void printpmem(String[]memory, int colm, int increment){
    //true for memory
    //This prints the stuff in the memory
    int call = 0;

    printloc(0);
    printstuff();
        for (int i=0; i < MAX_FRAMES; i++)
        {
                System.out.print(memory[i]);
                colm++;
                if (colm == 120)
                {   
                    System.out.print("\n");
                    colm = 0;
                    call++;
                }
        }
}
    public static void printstuff(){
        System.out.print("\n");
        System.out.print("--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||\n");
    }
    public static void printloc(int loc){

        for(int showloc = 0; showloc<MAX_FRAMES; showloc++)
        {

            increment++;
            loc++;
        if (increment == 4)
        {
            System.out.printf("     %02d      ", loc);
            increment = 0;
        }
        if (showloc == 120){
            System.out.print("\n");
        }
        if (showloc == 240){
            System.out.print("\n");
        }
        }
    }

这是我得到的输出,我无法正确使用它。请帮助!

     04           08           12           16           20           24           28           32           36           40           44           48           52           56           60           64           68           72           76           80           84           88           92           96           100           104           108           112           116           120      
     124           128           132           136           140           144           148           152           156           160           164           168           172           176           180           184           188           192           196           200           204           208           212           216           220           224           228           232           236           240      
     244           248           252           256           260           264           268           272           276           280      
--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||--------++--------||
R7L9F5B2R6J9C9A6F3E5F6A1A6D4C9G6L6J9I8H5A1A1K2U4F6A6R7A1G6B2C3B5H3R7K1R6C3E5G6H5G6N2C3N2L6L6O2A6P3H5E7G6G6X3C3E5T8F5H5U4J9B2P3F6A1K1K1U4R2Z3L6T8G6F5E5E7O2X3L6A6B5M1M1O2J9H5Z3T8G6O2T8B5F3A1B2O2A1I8F5B5G6R2C3C9E5B2T8R6G6K2B2T8F5J9R6N2N2R7U4U4
L6I8C3F5X3F5P3M1N2F5A1H5E7D4H7V6J9A1A1E5A1F6R7Y5L6C9C2H7W8C2U4M1W8C3C3C2F5L6B5H5V6B5T8L9H3E7O2G6I8D4B2I8T8A6L9K1D4C9K1H3H7H3R7L9T8C3F5C9R7C9F5K1B5C9L6R7C2F3J9G6G6H7H3A6X3A6K2G6M1I8A1C3K1B2X3K2C2R7D4H3E5O2L9T8H3Z3R7G6E7R7L6M1G6H5R2E7X4X3I8Y5

它有点偏离线的宽度应该是120长。所以60个元素。把它放在网站上让它看起来很难看。

那么我有没有办法设置一条线到var然后回到那条线来填充更多?我只是不知道该怎么做。

如何在订单展示中打印此内容?从...开始:  数组incrmenets的位置显示为5 这些愚蠢的破折号------- ++++ 然后是元素的实际字符串数组

1 个答案:

答案 0 :(得分:0)

打印完成后,您无法返回行。您可以做的是为所有数字使用相同大小的字段,以便它们正确排列。最简单的方法是将%02d替换为%04d(并根据需要调整空格);这将处理最多4位数字。

如果您需要所有数字至少为2位数(如果需要,则为前导0),但如果不需要则不超过该数字,如果值为&gt;,则可以使用%4d。 99,和%02d(有两个前导空格)否则。