Careeroza
Parsing and Converting
String to Number and Back
| Task | Method | Returns |
|---|---|---|
| String → int | Integer.parseInt("42") | primitive int |
| String → Integer | Integer.valueOf("42") | Integer object |
| number → String | String.valueOf(42) or Integer.toString(42) | "42" |
| with radix | Integer.parseInt("ff", 16) | 255 |
Handling Bad Input
Example
Text from forms, CSV files or query parameters may not be a valid number. parseInt throws NumberFormatException, so catch it.
public class Main {
static int parseOrDefault(String text, int fallback) {
try {
return Integer.parseInt(text.trim());
} catch (NumberFormatException e) {
System.out.println(" bad number: '" + text + "'");
return fallback;
}
}
public static void main(String[] args) {
String[] inputs = { "25", " 7 ", "12abc", "", "-3" };
int sum = 0;
for (String in : inputs) {
sum += parseOrDefault(in, 0);
}
System.out.println("Sum = " + sum);
System.out.println("Hex ff = " + Integer.parseInt("ff", 16));
System.out.println("As text: " + String.valueOf(3.5) + "|" + Integer.toString(99));
}
}Output
bad number: '12abc' bad number: '' Sum = 29 Hex ff = 255 As text: 3.5|99