In Java, you can use `Integer.parseInt(...)` or `Integer.valueOf(...)` to convert a string to an integer, use `Integer.parseUnsignedInt(...)` to convert a string to an unsigned integer. A `NumberFormatException` will be thrown if the string does not contain a parsable integer

### Integer.parseInt(...) and Integer.valueOf(...)

• `Integer.parseInt(String s)` parses the string argument `s` as a signed decimal integer
``````String s = "10";
int n = Integer.parseInt(s);
System.out.println(n); // 10
``````
• `Integer.parseInt(String s, int radix)` parses the string argument as a signed integer in the radix specified by the second argument
``````String s = "10";
int n = Integer.parseInt(s, 2);
System.out.println(n); // 2
``````
• `Integer.parseInt(CharSequence s, int beginIndex, int endIndex, int radix)` parses the `CharSequence` argument from the character at `beginIndex` to `endIndex - 1` as a signed integer in the specified `radix`
``````String s = "a10b";
int n = Integer.parseInt(s, 1, 3, 2);
System.out.println(n); // 2
``````
• The characters in the string must all be decimal digits, except the first character may be a minus (-) or plus (+) sign
``````String s = "-10";
int n = Integer.parseInt(s);
System.out.println(n); // -10
``````
• A `NumberFormatException` will be thrown if the string does not contain a parsable integer
``````String s = "10a";
int n = Integer.parseInt(s); // throws NumberFormatException
``````
• `Integer.parseInt(String s)` is backed by `Integer.parseInt(String s, int radix)` with 10 as the `radix` argument

• `Integer.valueOf(String s)` and `Integer.valueOf(String s, int radix)` internally call `Integer.parseInt(String s)` and `Integer.parseInt(String s, int radix)` respectively

## Integer.parseUnsignedInt(...) since Java 8+

• `Integer.parseUnsignedInt(String s)` parses the string argument `s` as an unsigned decimal integer
``````String s = "10";
int n = Integer.parseUnsignedInt(s);
System.out.println(n); // 10
``````
• `Integer.parseUnsignedInt(String s, int radix)` parses the string argument as an unsigned integer in the radix specified by the second argument
``````String s = "10";
int n = Integer.parseUnsignedInt(s, 2);
System.out.println(n); // 2
``````
• `Integer.parseUnsignedInt(CharSequence s, int beginIndex, int endIndex, int radix)` parses the `CharSequence` argument from the character at `beginIndex` to `endIndex - 1` as an unsigned integer in the specified `radix`
``````String s = "a10b";
int n = Integer.parseInt(s, 1, 3, 2);
System.out.println(n); // 2
``````
• The characters in the string must all be decimal digits, except the first character may be a plus (+) sign
``````String s = "+10";
int n = Integer.parseUnsignedInt(s);
System.out.println(n); // 10
``````
• A `NumberFormatException` will be thrown if the string does not contain a parsable unsigned integer
``````String s = "-10";
int n = Integer.parseUnsignedInt(s); // throws NumberFormatException
``````
• `Integer.parseUnsignedInt(String s)` is backed by `Integer.parseUnsignedInt(String s, int radix)` with 10 as the `radix` argument