Løsningsforslag - oppgaver i Avsnitt B.1


Oppgave 5

  for (int i = 0; i < navn.length; i++)
  {
    String navn0 = navn[i];
    if (navn0.length() > 10) navn0 = navn0.substring(0, 10);
    System.out.printf("%-12s%3d%4d%n", navn0, poeng[i], alder[i]);
  }

Det blir mer elegant hvis en bruker en presisjon på 10 i utskriftsdirektivet:

  for (int i = 0; i < navn.length; i++)
  {
    System.out.printf("%-12.10s%3d%4d%n", navn[i], poeng[i], alder[i]);
  }

Oppgave 6

  for (int i = 0; i < navn.length; i++)
  {
    System.out.printf("%1$-12s%3$3d%2$4d\n", navn[i], poeng[i], alder[i]);
  }

Oppgave 7

  for (int i = 1; i <= 20; i++)
  {
    System.out.printf("%1$2d %1$2o %1$2x%n", i);
  }

   // Utskrift:
   /*
   1  1  1
   2  2  2
   3  3  3
   4  4  4
   5  5  5
   6  6  6
   7  7  7
   8 10  8
   9 11  9
  10 12  a
  11 13  b
  12 14  c
  13 15  d
  14 16  e
  15 17  f
  16 20 10
  17 21 11
  18 22 12
  19 23 13
  20 24 14    
  */