Løsningsforslag - oppgaver i Avsnitt 6.1.2


Oppgave 2

  String[] testord = {"else","Else","if","iff"};

  for (String s : testord)
  {
    if (erReservert(s)) s += " er et reservert ord";
    else s += " er ikke et reservert ord";

    System.out.println(s);
  }

Oppgave 3

  public static boolean erReservert(String[] reserverteord, String ord)
  {
    return Arrays.binarySearch(reserverteord, ord) >= 0;
  }

En test:

  String[] reserverteord =
    {"implements","protected","if","synchronized",
                  "else","class","static","extends","default","interface"};

  String[] testord = {"else","Else","if","iff"};

  for (String s : testord)
  {
    if (erReservert(reserverteord, s))  s += " er et reservert ord";
    else s += " er ikke et reservert ord";

    System.out.println(s);
  }

Oppgave 4

  public static int g(char c)
  {
    c = Character.toUpperCase(c);
    if (c == 'P') return 2;
    else if (c == 'U') return 4;
    else return 0;
  }

  public static int hash(String ord, int n)
  {
    return (ord.length() + g(ord.charAt(0)) + g(ord.charAt(ord.length() - 1))) % n;
  }

  public static void main(String... args)
  {
    String[] muser = {"Calliope", "Clio", "Erato", "Euterpe", "Melpomene",
      "Polyhymnia", "Terpsichore", "Thalia", "Urania"};

    for (String muse : muser) System.out.print(hash(muse,9) + " ");
  }