2015-04-22 2 views
0

Итак, мой проект предназначен для реализации подкачки, напомнив, что подкачка отличается от обмена, что позволяет разбивать память на процесс в кадрах. Моя единственная проблема - это структура, которую я должен распечатать. Таким образом, char, которые являются «A4», «E4», как таковые, являются примерами, но обрабатываются с 280 кадрами. Таким образом, символ хранится в памяти String []. Я должен напечатать эту память, которая, как указано, является 2 строковым символом alp и числом. Он должен выглядеть следующим образом сделано:Печать строк в формате в 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, а затем вернуться к этой строке, чтобы заполнить больше? Я просто не знаю, как это сделать.

Как я могу распечатать это в показе заказа? Начиная с: расположения массива incrmenets шоу 5 этих тупых тире вещи ------- ++++ , то на самом деле массив строк элементов

ответ

0

Вы не можете вернуться к линии после его печати. То, что вы можете сделать, это использовать одно и то же поле размера для всех ваших номеров, чтобы они правильно выстраивались. Самым простым было бы заменить %02d на %04d (и при необходимости отрегулировать пробелы); это будет обрабатывать до четырехзначных чисел.

Если вам нужно, чтобы все номера были как минимум 2 цифры (при необходимости 0), но не более, если это необходимо, вы можете использовать %4d, если значение равно> 99, и %02d (с двумя в противном случае.

+0

Моя единственная проблема с этим - это должно быть 2-значное число, которое я не могу сделать больше. – user19983

+0

Но у вас много отображаемых 3-значных чисел! –

+0

Моя проблема заключается в том, чтобы сначала напечатать числа, затем -----, а затем на самом деле в массиве. Но только 60 элементов перед тем, как перейти к следующей строке, и снова цифры и т. Д. – user19983

Смежные вопросы