jacobbb
jacobbb

Reputation: 101

Cannot convert String to int in Java

In my program I need to convert a String to Int.

    String str = new String(request.getData());

    String [] setting = str.split(" ");        
    String bs = setting[1];

The value of bs is 1024, I use System.out.println to test it, and it displays on the screen with "1024".

But when I use

    int blockSize = Integer.parseInt(bs); 

it will return an exception point to the line of Integer.parseInt :

Exception in thread "main" java.lang.NumberFormatException: For input string: "1024"
  at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
  at java.lang.Integer.parseInt(Integer.java:458)
  at java.lang.Integer.valueOf(Integer.java:554)

Can someone help me to solve it? Thanks.

Upvotes: 4

Views: 1529

Answers (3)

hossein ketabi
hossein ketabi

Reputation: 510

try this code:

 String bs = setting[1].trim().toString();

Upvotes: 1

enrico.bacis
enrico.bacis

Reputation: 31494

I suspect you have some hidden unicode character in the string bs, you can remove the non-digits with:

bs = bs.replaceAll("\\D", "");
int blockSize = Integer.parseInt(bs);

The code above will also convert the string "1a2" to 12, but that doesn't seem your case.

Upvotes: 10

Mikeologist
Mikeologist

Reputation: 60

    while( (!bs.matches("\\d+")) && (bs.length > 1)) 
    {
        bs = bs.substring(1);
    }

    if (bs.matches("\\d+")
    {
        int blockSize = Integer.parseInt(bs);
    }
    else
    {
        int blockSize = -1;
    }
    /* !! Then, check for "-1" in your application of 
          block size #runtime_exception_prevention */

This will continue to remove the offensive non digit bits down to 1, as necessary, until a digit is found or only one character remains in the string. The second check prevents the exception and returns a flagged value. Checking for this flagged value will intercept runtime exceptions. NB: I wrote this code in the comment block, please forgive any minor errors, I will gladly correct.

Upvotes: 0

Related Questions