import java.math.BigInteger;
import java.rmi.server.UID; public class UniqueNumber { public static void main(String[] args) {
UID uid = new UID();
String s = uid.toString();
s = s.replaceAll(":", "");
s = s.replaceAll("-", "");
s = s.toUpperCase();
BigInteger bi = new BigInteger(s, 16);
System.out.println("bi = " + bi);
}}
It's easy to make a typo in the logging.properties so if you want to make sure that you're actually logging the right stuff, you can put the following snippet in your main for a visual check:
LogManager lm = LogManager.getLogManager();
for(Enumeration e = lm.getLoggerNames(); e.hasMoreElements();) {
System.out.println((String) e.nextElement());
}You'll probably use the classname as the unique identifier with which you create the Logger instance. Be sure NOT to type the classname manually or with a constant, just do it as follows:
public class Scratchpad {
Logger logger = Logger.getLogger(this.getClass().getName()); // Class code goes here
}To format a date in Java, use the following code snippet. The result should be date = 17-Sep-2004:
Date date = new Date();
// If you use more than three Ms, the month will print out full
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
System.out.println("date = " + format.format(date));To parse a date:
String theDate = "19790919";
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
Date date = (Date)formatter.parse(theDate);You are using the Jakarta Commons Net library to transfer files for the user. When it fails, you want to display a correct error message. Now, if you would just read the Javadoc to check the exceptions that the connect() method of the FTPClient class throws, you wouldn't get any wiser: it says it throws SocketException and IOException. However, look carefully at the first exception; it's a superclass of a couple of finer-grained exceptions. The code snippet below gives you all the options:
FTPClient client;
try {
client = new FTPClient();
client.connect("example.com"); // an IP address is also fine
} catch (UnknownHostException uhe) {
System.out.println("The host name was not valid");
} catch (NoRouteToHostException nrthe) {
System.out.println("The IP address was not valid");
} catch (ConnectException ce) {
String msg = ce.getMessage();
if(msg.indexOf("timed out") != -1) {
System.out.println("timeout occurred, host is down or disconnected");
} else {
System.out.println("Error occurred while passing commands to the" +
"server");
} finally {
if (client != null && client.isConnected()) {
client.disconnect();
}
}Say you want to print a long, but you must make sure it contains at least five digits. If not, the number needs to be prefixed with zeros.
long l = 355;
String s;
if (l < 10000) {
// this has less than five digits
DecimalFormat df = new DecimalFormat("00000");
s = df.format(l);
} else {
s = l + "";
}
System.out.println(s); boolean debug = true;
long startTime = System.currentTimeMillis();
if (debug) {
out.println("Elapsed: " + ( System.currentTimeMillis() - startTime ) +
" milliseconds");
}To get the full stacktrace in a String (this should've been part of the API):
try {
// Do stuff
} catch (Exception e) {
StringBuffer sb = new StringBuffer();
StackTraceElement st[] = e.getStackTrace();
sb.append(e.getMessage() + "\n");
for (int i = 0; i < st.length; i++)
sb.append("at " + st[i].getClassName() + "." +
st[i].getMethodName() + "(" +
st[i].getFileName()+": " +
st[i].getLineNumber() + ")");
}To put a long-running query in the background, and keep refreshing your JSP until it's done, see page Long-running queries There are better ways, though.
This example uses a regular expression to parse a house number.
String regex = "^[0-9]+";
String s = "123a";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find()) {
System.out.println(m.group());
} else {
System.out.println("Not found!");
}