Dienstag, 21. Dezember 2010
Eindeutige Kennung / Unique ID
mattki, 10:37h
Wie kann man in Java eine eindeutige, zufällige ID erzeugen?
Ab Java 5 kann man die Klasse UUID benutzen:
Weitere Möglichkeiten findet man hier:
http://www.javapractices.com/topic/TopicAction.do?Id=56
.
Ab Java 5 kann man die Klasse UUID benutzen:
String id = UUID.randomUUID().toString();
Weitere Möglichkeiten findet man hier:
http://www.javapractices.com/topic/TopicAction.do?Id=56
.
... link (0 Kommentare) ... comment
Freitag, 15. Oktober 2010
Java TimeZone to iCal TimeZone
mattki, 12:28h
private static VTimeZone convertTimeZone( TimeZone tz ) {
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
net.fortuna.ical4j.model.TimeZone timezone = registry.getTimeZone( tz.getID() );
return timezone.getVTimeZone();
}
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
net.fortuna.ical4j.model.TimeZone timezone = registry.getTimeZone( tz.getID() );
return timezone.getVTimeZone();
}
... link (0 Kommentare) ... comment
Dienstag, 24. August 2010
Load Resoucefile from Classpath
mattki, 17:19h
Wie kann man in einem Java-Programm ein Resourcefile (z.B. XML- oder Properties-Datei), die im Classpath liegt, laden?
oder
In diesem Beispiel wird ein InputStream zum Lesen der Datei "liesmich.xml" erstellt. Diese Datei muss sich im Classpath befinden und im Java-Package "dies.ist.ein.test" liegen.
File-Objekt erstellen:
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("dies/ist/ein/test/liesmich.xml");
oder
ClassLoader.getSystemResourceAsStream("dies/ist/ein/test/liesmich.xml");
In diesem Beispiel wird ein InputStream zum Lesen der Datei "liesmich.xml" erstellt. Diese Datei muss sich im Classpath befinden und im Java-Package "dies.ist.ein.test" liegen.
File-Objekt erstellen:
File file = new File(classLoader.getResource("dies/ist/ein/test/liesmich.xml").toURI());
... link (0 Kommentare) ... comment
Freitag, 9. April 2010
JUnit: TestSuite of TestSuites
mattki, 13:49h
Wie kann man TestSuites in einer übergeordneten TestSuite zusammenfassen?
So geht's:
So geht's:
public class TestSuite1 { public static Test suit() { TestSuite testSuite = new TestSuite(); testSuite.addTestSuite(Test1.class); testSuite.addTestSuite(Test2.class); return testSuite; } } public class TestSuiteOfTestSuites { public static Test suit() { TestSuite testSuite = new TestSuite(); testSuite.addTest(TestSuite1.suite()); return testSuite; } }
... link (0 Kommentare) ... comment
Vordefinierte Zeit- und Datumsformate
mattki, 13:40h
So kann man in Java die vordefinierten Zeit- und Datumsformate verwenden:
http://java.sun.com/docs/books/tutorial/i18n/format/dateFormat.html
http://java.sun.com/docs/books/tutorial/i18n/format/dateFormat.html
... link (0 Kommentare) ... comment
Mittwoch, 30. Dezember 2009
Zufallszahlen erzeugen
mattki, 12:06h
Wie kann man in Java Zufallszahlen aus einem bestimmten Wertebereich erzeugen?
Beispielcode:
Beispielcode:
Random random = new Random();
private int getRandomValueBetween(
int firstValue, int lastValue) {
return firstValue + random.nextInt(lastValue - firstValue + 1);
}
private short getRandomValueOf(
short[] valueSet) {
return valueSet[random.nextInt(valueSet.length)];
}
... link (0 Kommentare) ... comment
Montag, 12. Oktober 2009
In Java eine XML gegen ein Schema validieren
mattki, 14:23h
Kann man in Java eine XML Datei mit Boardmitteln gegen ein XML Schema (XSD) validieren?
Ab Java 5 ist das Package
Details siehe:
http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi.html
Ab Java 5 ist das Package
javax.xml.validation
hinzugekommen. Eine Validierung gegen ein Schema ist nun einfach möglich.Details siehe:
http://www.ibm.com/developerworks/xml/library/x-javaxmlvalidapi.html
... link (0 Kommentare) ... comment
Donnerstag, 8. Oktober 2009
Wort RegEx inklusive Unicode
mattki, 12:22h
Der reguläre Ausdruck (RegEx)
Im deutschen gibt es aber Umlaute und in anderen Sprachen noch ganz andere Schriftzeichen.
Mit welchem regulären Ausdruck kann man also all diese Wortzeichen bezeichnen?
Der Ausdruck für ein Unicode Wortzeichen inklusive aller Unicode Buchstaben (Letters) und Ziffern (Numbers) ist:
Beispiel:
Weitere Quelle:
\w
steht für ein Zeichen eines Worts. In Java umfasst er aber nur die Buchstaben von a bis z und A bis Z, sowie die Ziffern. \w
entspricht also dem regulären Ausdruck [a-zA-Z_0-9]
.Im deutschen gibt es aber Umlaute und in anderen Sprachen noch ganz andere Schriftzeichen.
Mit welchem regulären Ausdruck kann man also all diese Wortzeichen bezeichnen?
Der Ausdruck für ein Unicode Wortzeichen inklusive aller Unicode Buchstaben (Letters) und Ziffern (Numbers) ist:
[\p{L}\p{N}]
Beispiel:
// RegEx, das beliebig viele Wortzeichen umfasst:
Pattern pattern = Pattern.compile("[\\p{L}\\p{N}]*");
// true, weil nur Buchstaben und Ziffern:
boolean test1 = pattern.matcher("18Mäuse").matches();
// false, wegen dem Leerzeichen:
boolean test2 = pattern.matcher("18 Mäuse").matches();
Weitere Quelle:
... link (0 Kommentare) ... comment
Freitag, 13. Februar 2009
Throwable/Exception in einen String wandeln
mattki, 13:36h
Ich möchte eine Exception anzeigen. Die Methode exception.getMessage() liefert mir bestenfalls einen beschreibenden Text, aber nicht die Stelle, wo die Exception aufgetreten ist. Wie gehe ich vor?
Mit dieser Methode kann man den kompletten Stacktrace einer Exception in einen String schreiben:
public static String getStackTrace(Throwable aThrowable) {
StringWriter strWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(strWriter);
aThrowable.printStackTrace(printWriter);
return strWriter.toString();
}
Mit dieser Methode kann man den kompletten Stacktrace einer Exception in einen String schreiben:
public static String getStackTrace(Throwable aThrowable) {
StringWriter strWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(strWriter);
aThrowable.printStackTrace(printWriter);
return strWriter.toString();
}
... link (0 Kommentare) ... comment
Ausgabe formatieren
mattki, 12:46h
Mit
Syntax wie mit printf in C:
%[flags][width][.precision][length]specifier
Für die Formatierung stehen folgende Format-Spezifizierer zur Verfügung:
Nähere Informationen in den JDK JavaDocs zur Klasse java.util.Formatter.
Beispiele:
1. Strings:
2. Eine Dezimalzahl auf 2 Stellen formartieren, bei 1 stelligen Zahlen eine führende 0 anhängen:
3. Aktuelles Datum und Uhrzeit ausgeben:
4. Datum nach ISO-8601 (YYYY-MM-DD) formatieren:
String.format
kann man ab Java 1.5 einen Text inklusive Variablenwerte komfortable anzeigen Syntax wie mit printf in C:
%[flags][width][.precision][length]specifier
Für die Formatierung stehen folgende Format-Spezifizierer zur Verfügung:
%b
: Boolean%c
: Character%s
: String%d
: Dezimalzahl%x
: Hexadezimaldarstellung%X
: ^^ mit Großbuchstaben%f
: Fließkommazahl%e
: Wissenschaftliche Notation%E
: ^^ mit großem "E"%g
: Fließkommazahl in gemischter Schreibweise%G
: ^^ mit großem "E"%t
: Datum und Zeit%n
: neue Zeile%%
: Prozentzeichen%c
: Unicode-ZeichenNähere Informationen in den JDK JavaDocs zur Klasse java.util.Formatter.
Beispiele:
1. Strings:
String name = "Max";
String day = "Montag";
String.format("Hallo %s! Heute ist %s.", name, day);
// Ausgabe: Hallo Max! Heute ist Montag.
2. Eine Dezimalzahl auf 2 Stellen formartieren, bei 1 stelligen Zahlen eine führende 0 anhängen:
// flag = 0 --> mit 0-en auffüllen
// width = 2 --> auf 2 Stellen formatieren
// specifier = d --> Dezimalzahl
String.format("%02d", 1) // Ausgabe: 01
3. Aktuelles Datum und Uhrzeit ausgeben:
System.out.println(String.format("Datum %tD, Uhrzeit %tT", new Date(), new Date()));
4. Datum nach ISO-8601 (YYYY-MM-DD) formatieren:
System.out.println(String.format("%tF", new Date()));
... link (0 Kommentare) ... comment
... nächste Seite