2015-04-22 170 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