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: 2010/01/26 11:07 (external edit)
Back to top
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0