In this article we are going to discuss converting int (primitive type) and Object type (wrapper) Integer to String. There are many ways to do it in Java.

How to convert int to string in Java

Convert int to string by adding an empty string

The easiest way to convert int to String is very simple. Just add to int or Integer an empty string "" and you’ll get your int as a String. It happens because adding int and String gives you a new String. That means if you have int x = 5, just define x + "" and you’ll get your new String.

Here is an example:


//  converting int to string, Java 
public class Demo {
   public static void main(String[] args) {

       int x = 5;
       //  java int to string
       String xText = x + "";
       //  the result output
       System.out.println("convert int to String, Java: " + xText);
       //  the int output
       System.out.println("our int: " + x);
       //  adding int and String gives the new String
       System.out.println("adding int = 5 and String = \"5\". The result is a new String = " + xText + x);
       //  integer to string, Java code
       Integer y = 7;
       String yText = y + "";
       System.out.println("convert Integer to String: " + yText);
       System.out.println("our Integer: " + y);
       System.out.println("adding Integer = 7 and String = \"7\". The result is a new String = " + y + yText);
   }
}

The output is:


convert int to String, Java: 5
our int: 5
adding int = 5 and String = "5". The result is a new String = 55
convert Integer to String: 7
our Integer: 7
adding Integer = 7 and String = "7". The result is a new String = 77

Java convert int to string using Integer.toString(int)

Object class is a root class in Java. That means every Java class is directly or indirectly inherited from the Object class and all Object class methods are available for all Java classes.

Object has a special method toString() to represent any object as a string. So, every Java class inherits this method as well. However the good idea is to override this method in your own classes to have an appropriate result.

The Integer class’ toString() method returns a String object representing the specified int or Integer parameter.

Its Syntax:


public static String toString(int i)

The method converts argument i and returns it as a string instance. If the number is negative, the sign will be kept.

Example:


//  java integer to string using toString method

public class Demo {
   public static void main(String[] args) {

       int x = -5;
       //  java convert int to string using Integer.toString
       String xText = Integer.toString(x);
       //  the result output
       System.out.println("convert int to String: " + xText);
       //  the int output
       System.out.println("our int: " + x);
       //  adding int and String gives the new String
       System.out.println("converting int = -5 and adding to String = \"-5\". The result is a new String = " + xText + Integer.toString(x));


   }
}


convert int to String: -5
our int: -5
converting int = -5 and adding to String = "-5". The result is a new String = -5-5

You may use the toString method to convert an Integer (wrapper type) as well.


Integer number = -7;
String numberAsString = Integer.toString(number);
System.out.println("convert Integer to String: " + numberAsString);

The result is:

convert Integer to String: -7

You may use special Integer.toString method toString(int i, int base) that returns a string representation of the number i with the base base and than to String. For example

The syntax is:


public static String toString(int i, int base)

Here is an example:


int a = 255;
//  binary
String customString = Integer.toString(a, 2);
System.out.println(customString);

The output is a String binary representation of decimal number 255:


11111111

Convert int to String using String.valueOf(int)

Method String.valueOf(int) returns the string representation of the int argument.

The syntax of the method is:


public static String valueOf(int i)

Here is an example of Java convert int to String using String.valueOf(int):


public class Demo {
   public static void main(String[] args) {
       int z = -5;
       //  Java int to String converting 
 String zText = String.valueOf(z); 
       //  the result output
       System.out.println("convert int to String: " + zText);
       //  the int output
       System.out.println("our int: " + z);
       //  adding int and String gives the new String
       System.out.println("converting int = -5 and adding to String = \"-5\". The result is a new String = " + zText + z);
   }
}


convert int to String: -5
our int: -5
converting int = -5 and adding to String = "-5". The result is a new String = -5-5

You may do the same with an Integer (wrapper type of int):


Integer number = -7;
String numberAsString = String.valueOf(number);
System.out.println("convert Integer to String: " + numberAsString);

The output will be:

convert Integer to String: -7

Convert int to string using DecimalFormat

java.text.DecimalFormat is a class defined in java.text package and a subclass of NumberFormat. It is used for formatting a decimal number to a string representing following a certain pattern. We can use it for Integers as well.

Example:


import java.text.DecimalFormat;
public class Demo {
   public static void main(String[] args) {
       int myNumber = 31415;
       DecimalFormat decimalFormat = new DecimalFormat("#");
       String myNumberAsString = decimalFormat.format(myNumber);
       System.out.println(myNumberAsString);
   }
}

The output is:


31415

Convert int to string using String.format()

String.format() is one more way to convert an Integer to String Object.

Syntax


public static String format(String format, Object... args)

Example


public class Demo {
   public static void main(String[] args) {
       int myNumber = 35;
       String myNumberAsString = String.format("%d", myNumber);  //  %d converter defines a single decimal integer variable.
       System.out.println(myNumberAsString);
   }
}

The output is:

35

Handling Special Cases

Integer to string conversion is a fundamental concept in Java, but there are several aspects often overlooked. We’ll dive deeper into three essential topics that complement the basics of integer-to-string conversion. These additions aim to make your understanding more comprehensive and practical.

1. Handling Large Integers Using long or BigInteger

Standard int types in Java have a maximum value of 2,147,483,647 (Integer.MAX_VALUE). For many applications, this range is sufficient, but what if you need to handle numbers beyond this limit? That’s where long and BigInteger come into play.

Here’s how you can handle large integers and convert them to strings:

Using long

long largeNumber = 9223372036854775807L; // Maximum value of long
String largeNumberString = Long.toString(largeNumber);
System.out.println(largeNumberString); // Output: "9223372036854775807"
  

Using BigInteger

import java.math.BigInteger;

BigInteger hugeNumber = new BigInteger("123456789123456789123456789");
String hugeNumberString = hugeNumber.toString();
System.out.println(hugeNumberString); // Output: "123456789123456789123456789"
  

The BigInteger class is ideal for scenarios involving extremely large numbers, such as cryptography or scientific calculations. Unlike long, which has a fixed range, BigInteger can handle arbitrarily large numbers, making it a powerful tool for developers.

2. Converting Negative Integers to Strings

Converting negative integers to strings may seem straightforward, but there are nuances to consider. Java ensures that the negative sign is preserved during conversion, but developers need to understand how this process works, especially when formatting or manipulating strings.

Let’s look at an example:

int negativeNumber = -123;
String negativeNumberString = Integer.toString(negativeNumber);
System.out.println(negativeNumberString); // Output: "-123"
  

When working with custom formatting or concatenating strings, you must ensure the negative sign remains intact. For example:

int negativeNumber = -456;
String formattedString = "The number is " + negativeNumber;
System.out.println(formattedString); // Output: "The number is -456"
  

However, be cautious when manipulating strings manually:

int negativeNumber = -789;
String manualConversion = String.valueOf(Math.abs(negativeNumber)) + "-";
System.out.println(manualConversion); // Output: "789-", which is incorrect
  

To avoid issues, always rely on Java’s built-in methods for converting negative numbers.

3. Broader Utility of Integer to String Conversion in Java

Understanding the importance of integer-to-string conversion is key to appreciating its role in Java programming. Here are some common scenarios where this operation is invaluable:

  • Data Manipulation: Converting integers to strings is often required when working with databases, APIs, or file systems where data is stored as text.
  • User Interfaces: When displaying numbers to users in GUIs or web applications, strings are the go-to format for rendering data.
  • Algorithm Development: Some algorithms, such as string-based sorting or pattern matching, rely on numbers being represented as strings.
  • Logging and Debugging: Converting numbers to strings makes it easier to include them in log messages or debug outputs.

Here’s an example of formatting numbers for a user-friendly display:

int score = 100;
String message = "Your score is: " + Integer.toString(score);
System.out.println(message); // Output: "Your score is: 100"
  

By recognizing these practical applications, you’ll gain a deeper appreciation for the versatility and importance of integer-to-string conversion in Java development.

Troubleshooting Conversion Issues

Next section addresses some missing aspects in the original discussion, focusing on exceptions, null handling, and troubleshooting common issues.

1. Handling NumberFormatException During Conversion

One common issue during number conversion is the NumberFormatException. This occurs when you attempt to parse a string into an integer but the string is not in a valid numeric format. Understanding and handling this exception is critical for robust applications.

Example Scenario

try {
    String invalidNumber = "abc123";
    int number = Integer.parseInt(invalidNumber); // This will throw NumberFormatException
} catch (NumberFormatException e) {
    System.out.println("Invalid number format: " + e.getMessage());
}
  

In this example, the string "abc123" cannot be parsed into an integer, resulting in a NumberFormatException. By using a try-catch block, we handle this gracefully and avoid crashing the program.

Best Practices

  • Always validate user input before attempting to parse it.
  • Use try-catch blocks to catch and handle exceptions.
  • Consider using regular expressions to ensure that strings are in a valid numeric format.

2. Handling Null Values to Prevent NullPointerException

Another common issue during integer-to-string conversion involves null values. If a null value is inadvertently processed, it can lead to a NullPointerException, potentially crashing your program. Handling null values effectively ensures smoother execution.

Example: Avoiding Null Issues

Integer nullableNumber = null;

try {
    String numberString = String.valueOf(nullableNumber); // Safe handling of null
    System.out.println("Converted number: " + numberString);
} catch (NullPointerException e) {
    System.out.println("Null value cannot be converted.");
}
  

The String.valueOf() method handles null values by returning the string "null" instead of throwing an exception. This is often a safer choice than methods like toString(), which may not handle null gracefully.

Best Practices

  • Use String.valueOf() instead of toString() when null values are a possibility.
  • Check for null explicitly before attempting conversion:
if (nullableNumber != null) {
    System.out.println(nullableNumber.toString());
} else {
    System.out.println("Number is null.");
}
  

3. Troubleshooting Common Conversion Issues

A troubleshooting section can be invaluable for developers encountering conversion errors. Here’s a quick guide to resolving common problems:

Common Issues and Solutions

Issue Cause Solution
NumberFormatException String contains non-numeric characters. Validate input using regular expressions or libraries like Apache Commons Lang.
NullPointerException Attempting to call toString() on a null reference. Use String.valueOf() or check for null before conversion.
Unexpected Output Improper handling of negative numbers or formatting. Ensure logic accounts for all edge cases, including negative integers and special formatting requirements.

Debugging Tips

  • Log input values before performing conversions to identify issues early.
  • Use unit tests to verify the correctness of your conversion logic.
  • Leverage debugging tools in your IDE to trace the flow of execution and identify problematic code.