This shows you the differences between two versions of the page.
— |
howto:java:how_to_convert_data_type_x_into_type_y_in_java [2019/04/12 13:13] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== How to convert data type X into type Y in Java ====== | ||
+ | **The examples below show how to convert between different data types in Java. This is useful if you write your own plugins.** | ||
+ | |||
+ | ===== integer to String : ===== | ||
+ | |||
+ | int i = 42; \\ String str = Integer.toString(i); | ||
+ | |||
+ | or | ||
+ | |||
+ | String str = "" + i; | ||
+ | |||
+ | ===== double to String : ===== | ||
+ | |||
+ | String str = Double.toString(d); | ||
+ | |||
+ | or (in ImageJ only): | ||
+ | |||
+ | String str1 = IJ.d2s(d, n); // n (0...9) digits to the right of the decimal point | ||
+ | String str2 = IJ.d2s(d); // 2 digits to the right of the decimal point | ||
+ | |||
+ | ===== long to String : ===== | ||
+ | |||
+ | String str = Long.toString(l); | ||
+ | |||
+ | ===== float to String : ===== | ||
+ | |||
+ | String str = Float.toString(f); | ||
+ | |||
+ | ===== String to integer : ===== | ||
+ | |||
+ | str = "25";\\ int i = Integer.valueOf(str).intValue(); | ||
+ | |||
+ | or | ||
+ | |||
+ | int i = Integer.parseInt(str); | ||
+ | |||
+ | ===== String to double : ===== | ||
+ | |||
+ | double d = Double.valueOf(str).doubleValue(); | ||
+ | |||
+ | or (in ImageJ only):\\ | ||
+ | |||
+ | double d = Tools.parseDouble(str, defaultValue);\\ // results in defaultValue if the string str results in no valid number | ||
+ | |||
+ | ===== String to long : ===== | ||
+ | |||
+ | long l = Long.valueOf(str).longValue(); | ||
+ | |||
+ | or | ||
+ | |||
+ | long l = Long.parseLong(str); | ||
+ | |||
+ | ===== String to float : ===== | ||
+ | |||
+ | float f = Float.valueOf(str).floatValue(); | ||
+ | |||
+ | ===== decimal to binary : ===== | ||
+ | |||
+ | int i = 42;\\ String binstr = Integer.toBinaryString(i); | ||
+ | |||
+ | ===== decimal to hexadecimal : ===== | ||
+ | |||
+ | int i = 42;\\ String hexstr = Integer.toString(i, 16); | ||
+ | |||
+ | or | ||
+ | |||
+ | String hexstr = Integer.toHexString(i); | ||
+ | |||
+ | or (with leading zeroes and uppercase) | ||
+ | |||
+ | <code java> | ||
+ | public class Hex { | ||
+ | public static void main(String args[]){ | ||
+ | int i = 42; | ||
+ | System.out.print | ||
+ | (Integer.toHexString( 0x10000 | i).substring(1).toUpperCase()); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== Color to hexadecimal ===== | ||
+ | |||
+ | (ImageJ only) | ||
+ | |||
+ | String str = Tools.c2hex(myColor); // results in "#rrggbb", e.g., "#FF0000" for red | ||
+ | |||
+ | ===== hexadecimal (String) to integer : ===== | ||
+ | |||
+ | int i = Integer.valueOf("B8DA3", 16).intValue(); | ||
+ | |||
+ | or | ||
+ | |||
+ | int i = Integer.parseInt("B8DA3", 16); | ||
+ | |||
+ | ===== ASCII code to String: ===== | ||
+ | |||
+ | int i = 64;\\ String aChar = new Character((char)i).toString(); | ||
+ | |||
+ | ===== integer to ASCII code (byte): ===== | ||
+ | |||
+ | char c = 'A';\\ int i = (int) c; // i will have the value 65 decimal | ||
+ | |||
+ | ===== To extract ASCII codes from a String: ===== | ||
+ | |||
+ | <code java> | ||
+ | String test = "ABCD"; | ||
+ | for ( int i = 0; i < test.length(); ++i ) { | ||
+ | char c = test.charAt( i ); | ||
+ | int i = (int) c; | ||
+ | System.out.println(i); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== integer to boolean: ===== | ||
+ | |||
+ | b = (i != 0); | ||
+ | |||
+ | ===== boolean to integer: ===== | ||
+ | |||
+ | i = (b)?1:0; | ||
+ | |||
+ | ===== float to double ===== | ||
+ | |||
+ | float f = (float)d; | ||
+ | |||
+ | For arrays (in ImageJ only):\\ | ||
+ | |||
+ | float[] fArray = Tools.toFloat(dArray); | ||
+ | |||
+ | ===== double to float ===== | ||
+ | |||
+ | double d = f; //no explicit typecast needed | ||
+ | |||
+ | For arrays (in ImageJ only):\\ | ||
+ | |||
+ | double[] dArray = Tools.toDouble(fArray); | ||
+ | |||
+ | ===== To catch illegal number conversions: ===== | ||
+ | |||
+ | Try using the try/catch mechanism: | ||
+ | |||
+ | <code java> | ||
+ | try{ | ||
+ | i = Integer.parseInt(aString); | ||
+ | } | ||
+ | catch(NumberFormatException e) { | ||
+ | } | ||
+ | </code> |