2015-04-22 115 views
0

所以我的项目是实现分页,回顾分页不同于交换,它允许一个进程的内存在帧中分解。我唯一的问题是我必须打印这个结构。所以这些给出的'A4','E4'这样的字符就是例子,但是它们被处理了280帧。所以char存储在String []内存中。我必须打印这些内存,就像所说的是一个alp和一个数字的2个字符串字符。 它需要像这样做的时候:以java格式打印行

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

所以顶部是字符串数组只显示5日一个起始于00 的位置增量那么我们就必须------- ++ ------只是为了看起来我猜。 然后最后一行是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,然后返回该行以填充更多?我只是不知道该怎么做。

我该怎么去打印这个订单秀?与开始:的5件 这些愚蠢的事情几许阵列incrmenets显示 位置------- ++++ 然后要素的实际字符串数组

回答

0

你不能回去到线一旦它被打印出来。你可以做的就是使用相同大小的字段来存储你的所有号码,以便它们正确排列。最简单的方法是将%02d替换为%04d(并根据需要调整空格);这将处理最多4位数字。

如果您需要所有数字都是至少2位数字(如果需要,带有前导0),但不超过如果不需要,可以使用%4d(如果值大于99)和%02d(使用两个领先的空间),否则。

+0

我唯一的问题是它必须是2位数字我不能让它更多。 – user19983

+0

但是你有很多3位数字正在显示! –

+0

我的问题是让它首先打印数字然后-----然后是数组中的实际东西。但是在它到达下一行之前只有60个元素,并且再次编号等等。 – user19983