Type Conversion
Type conversion is the process of converting a value of one data type into another data type. There are many situations where data is available in one type and the program needs to treat it as another type. Common instances are situations where a mathematical operation needs a float
value and one of the operands needed is an integer
, or when processing user input that comes in as String
data and it needs to be interpreted as some sort of number.
Converting Between Numeric Types
In certain situations, where the data types are compatible, Java can do type conversion automatically. This happens when a smaller data type, like int
, is assigned to a variable of a longer data type, like long
.
// Automatic type conversionint x = 15;long y = 0L;y = x; // y is now 15L
This process is also known as widening and follows the following pattern:
byte -> short -> int -> long -> float -> double
Any data type can be “widened” to a data type to the right on this list.
Converting to a smaller data type, i.e. going to the left on this list, requires explicit conversion or type casting.
// Explicit type castinglong x = 15L;int y = 0;y = (int)x; // y is now 15
Converting Strings to Numeric Types
String
values are not directly compatible with numeric values. However, Java provides Number
subclasses for the primitive numeric types; Byte
, Integer
, Double
, Float
, Long
and Short
. Each of these provides a .parseXXXX()
method that takes a string and provides the equivalent data type.
// Convert a string into a number using .parseXXXX()String s = "15";// Convert a string into an integer.int x = Integer.parseInt(s); // x is now 15// Convert a string into a float.float y = Float.parseFloat(s); // y is now 15f
Converting Numeric Types Into Strings
Converting numbers to strings can occur in a few different ways.
When a number is concatenated with a string, it will be converted automatically:
// Automatically convert an integer to a stringint i = 15;String s = "" + i; // s now has the value "15"
The String.valueOf()
method can be used:
// Convert an integer to a string using the .valueOf() method.int i = 15;String s = String.valueOf(i); // s now has the value "15"
Also, each of the Number
subclasses has a .toString()
method that converts its associated primitive numeric type into a String
:
// Convert an integer to a string using the .toString() method.int i = 15;String s = Integer.toString(i); // s now has the value "15"
Contribute to Docs
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.
Learn Java on Codecademy
- Career path
Computer Science
Looking for an introduction to the theory behind programming? Master Python while learning data structures, algorithms, and more!Includes 6 CoursesWith Professional CertificationBeginner Friendly75 hours - Free course
Learn Java
Learn to code in Java — a robust programming language used to create software, web and mobile apps, and more.Beginner Friendly17 hours