howto:java:how_to_convert_data_type_x_into_type_y_in_java
Table of Contents
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)
public class Hex { public static void main(String args[]){ int i = 42; System.out.print (Integer.toHexString( 0x10000 | i).substring(1).toUpperCase()); } }
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:
String test = "ABCD"; for ( int i = 0; i < test.length(); ++i ) { char c = test.charAt( i ); int i = (int) c; System.out.println(i); }
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:
try{ i = Integer.parseInt(aString); } catch(NumberFormatException e) { }
howto/java/how_to_convert_data_type_x_into_type_y_in_java.txt ยท Last modified: 2019/04/12 13:13 by 127.0.0.1