/***************************************************************/
/* Prof. Dr. Carsten Vogt                                      */
/* FH Koeln, Fak. 07 / Nachrichtentechnik                      */
/* http://www.nt.fh-koeln.de/vogt                              */
/*                                                             */
/* Das Programm zeigt den Umgang mit Stringbuffern.            */
/***************************************************************/
        
public class Stringbuf {

 public static void main(String args[]) {

  /* Konstruktoren: */

  StringBuffer s1 = new StringBuffer();
  StringBuffer s2 = new StringBuffer("String 2");
  StringBuffer s3 = new StringBuffer("String 3");

  System.out.println();
  System.out.println("s1:  " + s1.toString());
  System.out.println("s2:  " + s2.toString());
  System.out.println("s3:  " + s3.toString());

  /* Laenge des Bufferinhalts: */

  System.out.println();
  System.out.println("s1.length(): " + s1.length());
  System.out.println("s2.length(): " + s2.length());

  /* Einzelzeichen im Buffer und Teilstrings: */

  System.out.println();
  System.out.println("s2.charAt(2): " + s2.charAt(2));
  System.out.println("s2.substring(2): " + s2.substring(2));
  System.out.println("s2.substring(2,6): " + s2.substring(2,6));
  
  /* Umkehren des Stringinhalts: */

  System.out.println();
  System.out.println("s2.reverse(): " + s2.reverse());
  System.out.println("nochmals s2.reverse(): " + s2.reverse());

  /* Ersetzen von Einzelzeichen und Teilstrings: */

  System.out.println();
  s2.setCharAt(3,'a');
  System.out.println("s2.setCharAt(3,'a'): " + s2);
  System.out.println("s2.replace(3,6,\"ack\"): " + s2.replace(3,6,"ack"));
  System.out.println("s3.replace(0,1,\"ABCDEF\"): " + s3.replace(0,1,"ABCDEF"));

  /* Loeschen von Einzelzeichen und Teilstrings: */

  System.out.println();
  System.out.println("s3.deleteCharAt(0): " + s3.deleteCharAt(0));
  System.out.println("s3.deleteCharAt(0): " + s3.deleteCharAt(0));
  System.out.println("s3.delete(0,4): " + s3.delete(0,4));
  System.out.println("s3.delete(2,5): " + s3.delete(2,5));

  /* Einfuegen und Anhaengen: */

  System.out.println();
  System.out.println("s3.insert(0,\"S\"): " + s3.insert(0,"S"));
  System.out.println("s3.insert(3,\"ing\"): " + s3.insert(3,"ing"));
  System.out.println("s3.append(\" 4 \"): " + s3.append(" 4 "));
  /* Einfuegen und Anhaengen auch von Zahlenwerten moeglich: */
  System.out.println("s3.append(4): " + s3.append(4));
  s3.append(" ");
  System.out.println("s3.append(4.4): " + s3.append(4.4));
  s3.insert(7," ");
  System.out.println("s3.insert(7,4.444): " + s3.insert(7,4.444));

 }

}

