6.11.3 Lösungen
   
Aufgabe 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

 class CastenDemo{
   private static void m(double d){
     System.out.println("m(double)");
     System.out.println(d);
   }
 
   public static void main(String[] args){
     long l = 5;
     float x = 1.25f;
     m(x);
     x = x*l;
     System.out.println("x = "+x);
     short s = (short)x;
   }
 }
 
 
1 -
2 -
3 -
4 println(..) ruft implizit eine Methode auf, nämlich toString(), die aus dem Typ für d (double) einen String macht.
5 -
6 -
7 -
8 '5' wird als eine int-Zahl interpretiert.
9 -
10 der Floatwert von x wird implizit zu einem double-Wert gecastet.
11 '1' wird implizit zu einer float gecastet.
12 Durch die Konkatenation wird er Wert von x zu einem String-Objekt.
13 Die float-Variable wird explizit zu einer short-Variabeln gecastet.
14 -
15 -
 
Aufgabe 2
Download:
FindeJava.java
import info1.*;

public class FindeJava {
  //Das Programm sucht in einem eingegebenen Text nach dem 
  //Wort 'Java' bzw 'java'. Ob das Wort ein 2tes mal vor-
  //kommt, wird nicht untersucht
  public static void main (String[] args) {
    boolean gefunden = false;
    System.out.print("Geben Sie einen Satz ein: ");
    String satz = Console.in.readLine();
    for (int i = 0; i < satz.length() - 3 && !gefunden; i++){
      gefunden = (satz.toUpperCase().charAt(i) == 'J' 
                  && satz.substring(i+1,i+4).equals("ava"));
    }
    System.out.println(gefunden? 
                       "Java bzw. java ist gefunden!": 
                       "Java bzw. java ist nicht gefunden!" );
  }
}
  In der for-Schleife wird zunächst nach dem Vorkommen des Buchstabens 'j' bzw. 'J' gesucht. Dies darf in dem Text natürlich nur solange gehen, dass beim Erfolg der anschließende Vergleich der drei nachfolgenden Buchstaben mit dem String "java" nicht über die Grenze des eingegebenen Textes hinausgeht. Ist also der Buchstabe 'j' bzw. 'J' gefunden und ist der nachfolgende 3-Zeichen-lange Teilstring gleich "ava" wird gefunden auf true gesetzt und die for-Schleife und damit eine weitere Suche abgebrochen. Damit ist klar, dass die boolsche Variable gefunden vor der Schleife auf false gesetzt sein muss und für jeden weiteren Schleifendurchgang geprüft werden muss, dass sie noch false ist.
 
Erweiterung
FindeText.java
Unsere Aufgabe kann jetzt leicht erweitert werden. Wieder werde ein Text eingegeben. Danach soll nicht mehr nach 'Java' sondern nach einem beliebeigen Text gesucht werden. Dieser soll über die Konsole eingegeben werden. Die Struktur der Lösung FindeJava.java wird zur Lösung direkt übernommen. und kann leicht angepasst werden. Man versuche das Problem selbst zu lösen und vergleiche dann mit der Lösung FindeText.java. Leicht kann man erkennen, dass ohne die Vorübung von Aufgabe 2 das allgemeine Problem kaum so schnell gelöst werden kann.
 
zu 6.12 Felder
6.12.1 Deklaration und Initialisierung
zur Startseite www.pohlig.de  (C) MPohlig 2007