StringDemo.java [Last ned]

import static java.lang.System.*;
import static javax.swing.JOptionPane.*;
import java.util.Arrays;
 
public class StringDemo {
 
  public static void main(String[] args) {
    test1();
    test2();
    test3();
    test4();
    test5();
    test6();
  }
 
  public static void test1() {
    String s1 = "abc";
    String s2 = s1;
    s1 = s1.replace('b','x');
    out.print("s1=" + s1 + " s2=" + s2);
    out.println();
  }
 
  public static void test2() {
    String tekst = "Et ord, men ikke mer.";
    String regex = "(\\.|,| |\n)+";
    String[] ordTab = tekst.split(regex);
    int antallTegn = 0;
 
    for (int i=0; i<ordTab.length; i++) {
      String ord = ordTab[i];
      antallTegn += ord.length();
      out.println(ord + ": " + ord.length());
    }
 
    int snitt = antallTegn / ordTab.length;
    out.print("Gj.snittlig ordlengde: " + snitt);
    out.println();
  }
 
  public static void test3() {
    String s = "Her er en tekst. Den har flere ord " +
               "med blanke, punktum, komma og et \n" +
               "linjeskift som skilletegn.";
    String[] ordTab = s.split("(\\.|,| |\n)+");
    String mønster = "nk";
    int antallOrd = 0;
 
    for (int i=0; i<ordTab.length; i++) {
      String ord = ordTab[i];
      int pos = ord.indexOf(mønster);
      out.print(ord);
      if (pos >= 0) {
        antallOrd++;
        out.print(" ==> " + mønster + " i pos " + pos);
      }
      out.println();
    }
    out.print("Antall treff: " + antallOrd);
    out.println();
  }
 
  public static void test4() {
    String tekst = "Et tall, og et tall.";
    tekst = tekst.toLowerCase();
 
    String regex = "(\\.|,| |\n)+";
    String[] ordTab = tekst.split(regex);
 
    Arrays.sort(ordTab);
 
    String[] ordListe = new String[ordTab.length];
    int antNyeOrd = 0;
 
    for (int i=0; i<ordTab.length; i++) {
      String ord = ordTab[i].toUpperCase();
 
    boolean funnet = false;
    int j=0;
    while (!funnet && j<antNyeOrd)
      if ( ord.equals(ordListe[j]) )
        funnet = true;
      else
        j++; // let videre...
 
      if (!funnet) {
        ordListe[j] = ord;
        antNyeOrd++;
        out.println(ord);
      }
    }
  }
 
  public static void test5() {
    out.println("Nå er det metode 5");
    String tekst = "Et tall, og et tall.";
    String regex = "(\\.|,| |\n)+";
    String[] ordTab = tekst.split(regex);
 
    Arrays.sort(ordTab);
 
    String[] ordListe = new String[ordTab.length];
    int antNyeOrd = 0;
    Arrays.fill(ordListe,ordTab[0]);
    for (int i=1; i<ordTab.length; i++) {
      String ord = ordTab[i].toUpperCase();
      if ( Arrays.binarySearch(ordListe, ord) < 0) {
        ordListe[antNyeOrd] = ord;
        antNyeOrd++;
        out.println(ord);
      }
    }
  }
 
  public static void test6() {
    out.println("Nå er det metode 6");
    String tekst = "Øistein øker, Ågot ånder, Bjarne bor, Æsop æser.";
    String regex = "(\\.|,| |\n)+";
    String[] ordTab = tekst.split(regex);
    String svar = tekst + "\n";
    Arrays.sort(ordTab);
    int antallTegn = 0;
    for (int i=0; i<ordTab.length; i++) {
      String ord = ordTab[i];
      antallTegn += ord.length();
      out.println(ord.toUpperCase()+": "+ord.length());
      svar += ord.toUpperCase()+": "+ord.length() + "\n";
    }
    int snitt = antallTegn / ordTab.length;
    out.print("Gj.snittlig ordlengde: " + snitt);
    out.println();
    svar += "Gj.snittlig ordlengde: " + snitt;
    showMessageDialog(null, svar);
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.