Java: Unterschied zwischen den Versionen
Flinh1 (Diskussion | Beiträge) (→Bücher) |
Flinh1 (Diskussion | Beiträge) (→Bücher) |
||
Zeile 216: | Zeile 216: | ||
=== Bücher === | === Bücher === | ||
− | [https://www.rheinwerk-verlag.de/einfuhrung-in-java_4096/?gclid=CjwKCAjwmZbpBRAGEiwADrmVXkqLf00G3aFoDB0x5KNTrnK3TW_rC-f-ItruFgNyQu9etlHf5uM63xoCYWwQAvD_BwE Günster, Kai: Einführung in Java] | + | * [https://www.rheinwerk-verlag.de/einfuhrung-in-java_4096/?gclid=CjwKCAjwmZbpBRAGEiwADrmVXkqLf00G3aFoDB0x5KNTrnK3TW_rC-f-ItruFgNyQu9etlHf5uM63xoCYWwQAvD_BwE Günster, Kai: Einführung in Java] |
* [https://www.mitp.de/IT-WEB/Programmierung/Java-9-Das-Uebungsbuch.html Jung, Elisabeth: Java 9 - Das Übungsbuch, Heidelberg 2017] | * [https://www.mitp.de/IT-WEB/Programmierung/Java-9-Das-Uebungsbuch.html Jung, Elisabeth: Java 9 - Das Übungsbuch, Heidelberg 2017] | ||
Zeile 222: | Zeile 222: | ||
---- | ---- | ||
− | [[Kategorie: Alle Seiten]] | + | [[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung]] |
Version vom 21. Juli 2019, 16:49 Uhr
Inhaltsverzeichnis
Beispiele
Wörter zählen
package de.kaiguenster.javaintro.wordcount; import java.io.*; import java.util.*; /** * Ein einfacher Wortzähler, der aus einem beliebigen {@link InputStream} Wörter zählt. * Wörter sind alle Gruppen von alphabetischen Zeichen. Das führt zum Beispiel beim * abgekürzten "geht's" dazu, dass es als "geht" und "s" gezählt wird. * @author Kai */ public class WordCount { private InputStream source; private Map<String, Integer> wordCounts = new HashMap<>(); private int totalCount = 0; /** * Erzeuge ein neues WordCount-Objekt aus einem {@link InputStream} * @param source - der Inputstream, aus dem gelesen wird. Sollte auch wirklich * Textdaten enthalten, sonst ist das Ergebnis ungewiss. */ public WordCount(InputStream source){ this.source = source; } /** * Zählt Wörter aus dem InputStream */ public void count(){ try(Scanner scan = new Scanner(source)){ scan.useDelimiter("[^\\p{IsAlphabetic}]+"); while (scan.hasNext()){ String word = scan.next().toLowerCase(); totalCount++; wordCounts.put(word, wordCounts.getOrDefault(word, 0) + 1); } } } /** * @return die Anzahl Wörter im Text */ public int getTotalCount(){ return totalCount; } /** * @return die Menge aller gefundenen Wörter im Text */ public Set<String> getWords(){ return Collections.unmodifiableSet(wordCounts.keySet()); } /** * Findet, wie oft ein bestimmtes wort im Text vorkommt. * @param word - das Wort, nach dem gesucht wird * @return - wie oft das Wort im Text vorkommt */ public int getCount(String word){ Integer result = wordCounts.get(word); return result != null ? result : 0; } /** * Die Main-Methode wird ausgeführt, wenn WordCount als Programm aufgerufen wird. * @param args - erwartet wird genau ein Aufrufparameter: ein Dateiname * @throws FileNotFoundException - diese Exception wird nie wirklich geworfen, * der Fehler wird vorher abgefangen */ public static void main(String[] args) throws IOException { if (args.length != 1) fail("WordCount requires exactly one file name as argument"); File f = new File(args[0]); if (!f.exists()) fail("File does not exist " + f.getAbsolutePath()); if (!f.isFile()) fail("Not a file " + f.getAbsolutePath()); if (!f.canRead()) fail("File not readable " + f.getAbsolutePath()); try(FileInputStream in = new FileInputStream(f)){ WordCount count = new WordCount(new FileInputStream(f)); count.count(); System.out.println("Words in total: " + count.getTotalCount()); count.getWords().stream().sorted().forEach((word) -> { System.out.println(word + ": " + count.getCount(word)); }); } } /** * Hilfsmethode zu main: im Fehlerfall schreibt diese Methode eine Fehlermeldung * und beendet das Programm * @param message - die Fehlermeldung */ private static void fail(String message){ System.err.println(message); System.exit(1); } }
Fibonacci
package de.kaiguenster.javaintro.fibonacci; /** * Java-Programm zur Berechnung von Fibonacci-Zahlen. * Auruf: java de.kaiguenster.javaintro.fibonacci.Fibonacci <n>. Dabei ist * n der Index der gesuchten Fibonacci-Zahl, <code>...Fibonacci 6</code> berechnet * die 6. Zahl der Folge: 5 * @author Kai */ public class Fibonacci { public static int fibonacci(int n){ if (n < 0) throw new IllegalArgumentException("Fibonaccizahlen sind für negativen Index nicht definiert."); else if (n == 0) return 0; else if (n == 1) return 1; else return fibonacci(n - 1) + fibonacci(n - 2); } public static void main(String[] args) { if (args.length != 1) { System.out.println("Aufruf: java de.kaiguenster.javaintro.fibonacci.Fibonacci <n>"); System.exit(1); } int n = Integer.parseInt(args[0]); int result = fibonacci(n); System.out.println("Die " + n + ". Fibonacci-Zahl ist: " + result); } }
Einen String umkehren
/** * Programm zum Umkehren von Strings in der Kommandozeile. * @author Kai * @version 1.0 */ package de.kaiguenster.javaintro.reverse; /** * * @author Kai */ public class Reverse { /** * Kehrt einen <code>String</code> zeichenweise um. Zum Beispiel wird "Hallo, Welt!" zu "!tleW ,ollaH" * @param in der umzukehrende <code>String</code> * @return den umgekehrten <code>String</code> * @throws IllegalArgumentException wenn in == <code>null</code> ist. */ public static String reverse(String in){ if (in == null) throw new IllegalArgumentException("Parameter in muss übergeben werden."); StringBuilder out = new StringBuilder(); for (int i = in.length() - 1; i >= 0; i--){ out.append(in.charAt(i)); } return out.toString(); } public static void main(String[] args) { if (args.length != 1){ System.out.println("Aufruf: java de.kaiguenster.javaintro.reverse.Reverse \"<text>\""); System.exit(1); } String reversed = reverse(args[0]); System.out.println(reversed); } }
Quellen
Links
https://www.java-tutorial.org/
https://javabeginners.de/index.php
https://de.wikibooks.org/wiki/Java_Standard
https://www.uni-trier.de/fileadmin/urt/doku/java/v80/java8.pdf
https://www.programmieraufgaben.ch/uploads/java.pdf
https://trainyourprogrammer.de/
Bücher
|