Java - Scripts

From XennisWiki
Jump to: navigation, search

A collection of short scripts written in Java

Basic

Digit sum

Berechnung der Quersumme einer Zahl mittels Modulo.

/**
 * Berechnung der Quersumme einer Zahl mittels Modulo.
 */
public class Quersumme
{
	/**
	 * @param args Zahl, von der die Quersumme gebildet werden soll
	 */
	public static void main(String[] args)
	{	
		try {
			System.out.println( quersumme( Integer.parseInt( args[0] ) ) );
		} catch (Exception e) {
			System.err.println("Falsche Eingabe!");
		}
	}
	
	/**
	 * Gibt die Quersumme der übergebenen Zahl zurück
	 * 
	 * @param z Zahl
	 * @return Quersumme
	 */
	public static int quersumme(int z)
	{
		int q = 0;
		
		while (z != 0) {
			q += z % 10;
			z /= 10;
		}
		
		return q;
	}
}

Advanced

Fibonacci sequence

Berechnung der Fibonacci-Folge

Herkömmliche Implementierung

/**
 * Herkömmliche Berechnung der Fibonacci-Folge
 *
 * @param n Berechne n-te Fibonacci-Zahl
 * @return n-te Fibonacci-Zahl
 */
public long fibonacci(int n) {
	if(n>1) {
		return fibonacci(n-1)+fibonacci(n-2);
	} else if(n==1) {
		return 1;
	} else {
		return 0;
	}
}

Schnelle Variante

/**
 * Fibonacci-Folge schnell berechnen
 * 
 * @param n Berechne n-te Fibonacci-Zahl
 * @param a Als Startparameter 0 übergeben
 * @param b Als Startparameter 1 übergeben
 * @return n-te Fibonacci-Zahl
 */
public long fibonacciQuick(int n, long a, long b) {
	if(n>1) {
		return a + fibonacciQuick(--n, b, a+b);
	} else if(n==1) {
		return 1;
	} else {
		return 0;
	}
}
// Berechnung von der 12., 2*12., 3*12., 4*12. und 5*12. Fibonacci-Zahl
for(int i=1; i<=5; i++) {
	System.out.println(i + ". Jahr: " + fibonacciQuick(i*12, 0, 1) );
}

ProcessBuilder

See also: Ausführen externer Programme und Skripte

import java.io.*;
import java.util.Scanner;

public class TestProcessBuilder {

	public static void main(String[] args) {
		try {
			readDir("c:/Windows");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * Gibt das Verzeichnis aus
	 * 
	 * @param dir Verzeichnis
	 * @throws IOException
	 */
	public static void readDir(String dir) throws IOException {
		ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "dir");
		pb.directory(new File(dir));
		Process p;
		p = pb.start();
		Scanner s = new Scanner(p.getInputStream()).useDelimiter("\\Z");
		System.out.println(s.next());
	}
}

Quine

Further information: The Quine Page

Ein Quine in Java, d.h. das Programm gibt seinen eigenen Quelltext ausgibt.

Der Quelltext wurde geschrieben von Bertram Felgenhauer

class Q{public static void main(String[]a){String s="class Q{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}";char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}

Und hier der Code zum besseren Verständnis noch mal ordentlich aufgeschrieben

class Q {
	public static void main(String[]a) {
		String s="class Q{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}";
		char c=34;
		System.out.println(s.substring(0,52)+c+s+c+s.substring(52));
	}
}

See also