Converting a string to an integer - NumberFormatException

Hello,
I have 2 string arrays, one that olds names and one that holds id numbers. They are both stored in a file as Strings. I then read this file into my program and put split the strings up into an array.
I then try to convert the id to integer inside my program like so:
public void make_array(String[] car_info) {
                // put in arraylist and change variable type to correct ones
                final int ID_INDEX = 0;
                final int TYPE = 1;
                int cust_id = 22;
                String type;
                //convert to correct variable types
                try {
                        //convert to string
                        cust_id = Integer.parseInt(car_info[ID_INDEX]);   
                } catch (NumberFormatException e) { System.out.println(e); }
                type = car_info[TYPE];
}I then get the errors when i try this:
java.lang.NumberFormatException: For input string: "1"
So the id was stored as "1", but i want to convert it to an integer value. Any ideas on why this happends? Also before i try to convert i output the id from the array and it is correct, after the conversion it is 0, obviously it is not working. But i'm not sure what is wrong.
Any ideas?

only works when the string is a single number suchas
"1" or "4". If you try to use it with the input
string as a longer one like "123" or "12" itcreates
a NumberFormatExceptionYou must be mistaken. The value must not be what you
think it is. Do some debugging:
String strVal = car_info[ID_INDEX].trim();
System.out.println("This is the number to be
parsed -->" + strVal + "<--");
customer_id = Integer.parseInt(strVal);That is a good idea, but it seems as though the string is fine: I did:
gary@linuxbox# cat cars
this output:
1,5,Renault Clio,Small Car,25,4,false
As you can see the number 25 is a two figure number, and it looks good. I also output the number in the java program like this:
System.out.println("the number is ------>" + twodigitnumber + "<------");This output the number: ------->25<---------- So there doesn't seem to be any wierd spacing or characters there.

Similar Messages

  • Converting a String to an integer?

    i need to convert a string to an integer..i searched through the site but i didn't find anything...
    Is this conversion possible?

    You didn't look very hard - it's right in the javadocs:
    String s = "44";
    int x = Integer.parseInt(s);I'll leave the exception handling for you.

  • Converting a string to an integer value

    How can I convert a string to an integer?

    sorry, not "of new Integer.." but "or new Integer(.."
    Message was edited by:
    s-e-r-g-e

  • Converting a string to an integer array

    This is kind of a newbie question, but:
    If I have a string which looks like this: "12,54,253,64"
    what is the most effective/elegant/best/etc. way to convert it into an integer array (of course not including the ","s :-)
    Any suggestions are greatly appreciated.

    Thanks, I'll do that. I was looking at StringTokenizer and other things, but it seems they are not implemented in j2me?

  • Coverting from a string to an integer

    Hi:
    Is it possible to covert a string to an integer?
    For example I want to convert the following string values to integers so that I can develop a method to use java.util.Date to test for overlapping appointments.
    Ex:
    markCalendar.addApp(new Appointment("June 1","3pm","4pm", "dentist"));
    I want to convert the startTime and the endTime to integers. And compare the startTime and endTime to a vector of appointments.
    Should this approch work?
    Thanks.
    Describes a calendar for a set of appointments.
    @version 1.0
    import java.util.Vector;
    public class CalendarTest
    {  public static void main(String[] args)
          Calendar markCalendar = new Calendar("Mark");
          markCalendar.addApp(new Appointment("June 1","3pm","4pm", "dentist"));
           markCalendar.addApp(new Appointment("June 2","3pm","4pm", "doctor"));
           markCalendar.print();
          Appointment toFind = new Appointment("June 2","3pm","4pm", "doctor");
          markCalendar.removeApp(toFind);   
          markCalendar.addApp(new Appointment("June 2","3pm","4pm", "dentist"));
          markCalendar.print();
          Appointment dups = (new Appointment("June 2","3pm","4pm", "dentist"));
          markCalendar.dupsTest(dups);
    Describes a calendar for a set of appointments.
    class Calendar
       Constructs a calendar for the person named.
       public Calendar(String aName)
       {  name = aName;
          appointments = new Vector();
       Adds an appointment to this Calendar.
       @param anApp The appointment to add.
       public void addApp(Appointment anApp)
          appointments.add(anApp);
       Removes an appointment from this Calendar.
       @param anApp The appointment to be removed.
       public void removeApp(Appointment toFind)
          for ( int i = 0; i < appointments.size(); i++)
             if (((Appointment)appointments.get(i)).equals(toFind))
                 appointments.remove(i);
       Tests for duplicate appointment dates.
       public void dupsTest(Appointment app)
          for (int x = 0; x < appointments.size(); x++)
             //Appointment cmp = (Appointment)appointments.elementAt(x);
             //System.out.println("cmp  " + cmp);
             for (int y = appointments.size()-1; y > x; y --)
                Appointment nextApp =(Appointment) appointments.get(y);
                //if (app.equals((Appointment)appointments.elementAt(y)))
                if (app.equals (nextApp))
                {  System.out.println("duplicates  ");
                   nextApp.print();
       Prints the Calendar.
       public void print()
       {  System.out.println(name + "               C A L E N D A R");
          System.out.println();
           System.out.println("Date   Starttime    EndTime   Appointment");
          for (int i = 0; i < appointments.size(); i++)
          {  Appointment nextApp =(Appointment) appointments.get(i);
             nextApp.print();
          //appointments.dupsTest(Appointments anApp);
       private Vector appointments;
       private String name;
       private Appointment theAppointment;
    Describes an appointment.
    class Appointment
       public Appointment(String aDate,String aStarttime,String aEndtime, String aApp)
       {  date = aDate;
          starttime = aStarttime;
           endtime = aEndtime;  
          app = aApp;
    Method to test whether on object equals another.
    @param otherObject  The other object.
    @return true if equal, false if not
    public boolean equals(Object otherObject)
          if (otherObject instanceof Appointment)
          {  Appointment other = (Appointment)otherObject;
             return (date.equals(other.date) && starttime.equals(other.starttime)
                     && endtime.equals(other.endtime) && app.equals(other.app));
           else return false;
       Prints the Date, Starttime, Endtime and a description of the
       appointment.
       public void print()  
       {  System.out.println();
          System.out.println(date + "   " + starttime + "          " + endtime
              + "       " + app );
          System.out.println();
       private String date;
       private String starttime;
       private String endtime;
       private String app;

    Hello,
    First I would like to suggest, DONT use the class names that have already being defined in JAVA, Here you have used, CALENDAR class, this approach should be avoided, If this class is in the same project where you also want to use the JAVA CALENDAR class, then you mite not be able to do so.
    As for the conversion, A simple way is that:
    You already know that the time cannot go more than 2 digits (Specifically not more than 24 hours in case of hours and 60 in case of minutes) and the (am) (pm) takes 2 more places, so what you can do is validate if the string size is 4 or 3, if 4 then take the first 2 substrings i.e. somestring.substring(0,2) and then use the Ineteger.parseInt(some string) method.
    similarly if the String size is 3 then take the first substring
    e.g. somestring.substring(0,1)
    This is how you can convert the string to the Integer and compare it, You can store it as an Integer Object and store it in the Vector If you want to.
    Hope this helps
    Regards
    Rohan

  • How to convert string to an integer in SQL Server 2008

    Hi All,
    How to convert string to an integer in sql server,
    Input : string str="1,2,3,5"
    Output would be : 1,2,3,5
    Thanks in advance.
    Regards,
    Sunil

    No, you cannot convert to INT and get 1,2,3 BUT you can get
    1
    2
    3
    Is it ok?
    CREATE FUNCTION [dbo].[SplitString]
             @str VARCHAR(MAX)
        RETURNS @ret TABLE (token VARCHAR(MAX))
         AS
         BEGIN
        DECLARE @x XML 
        SET @x = '<t>' + REPLACE(@str, ',', '</t><t>') + '</t>'
        INSERT INTO @ret
            SELECT x.i.value('.', 'VARCHAR(MAX)') AS token
            FROM @x.nodes('//t') x(i)
        RETURN
       END
    ----Usage
    SELECT * FROM SplitString ('1,2,3')
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Convert from String to Int

    Hi,
    I have a question.
    How do I convert from String to Integer?
    Here is my code:
    try{
    String s="000111010101001101101010";
    int q=Integer.parseInt(s);
    answerStr = String.valueOf(q);
    catch (NumberFormatException e)
    answerStr="Error";
    but, everytime when i run the code, i always get the ERROR.
    is the value that i got, cannot be converted to int?
    i've done the same thing in c, and its working fine.
    thanks..

    6kyAngel wrote:
    actually it convert the string value into decimal value.In fact what it does is convert the (binary) string into an integer value. It's the String representation of integer quantities that have a base (two, ten, hex etc): the quantities themselves don't have a base.
    To take an integer quantity (in the form of an int) and convert it to a binary String, use the handy toString() method in the Integer class - like your other conversion, use the one that takes a radix argument.

  • How to convert a string into a collection of KeyEvents

    I'm working on a program that must interact with a 3rd party application (closed to me, I have no access to the code or anything like that). I have been unable to send data to the program by getting its OutputStream. The only thing that has worked was using a Robot object to send individual key events (i.e. robot.keyPress(KeyEvent.VK_A);). Therefore I'm looking to convert a string (many different strings actually) into a collection of their associated KeyEvents so I can send them to the other application. Does anyone know a good way of doing it, or is anyone able to help me with using the OutputStream?
    Thank you!
    (The 3rd party application is Attachmate InfoConnect, a Unisys terminal emulation program that I have to use to access a mainframe).

    Here is a code sample.     public void checknumber(int vsize){
    int total;
    String anum;
    anum = tf2.getText();
    validnumber = true;
    lines2combine = 1;     //default (an integer)
    recs2make = 1;          //default
    try{
    lines2combine = Integer.parseInt(anum);
    catch (NumberFormatException e){
              System.out.println("Entry for lines to combine not numeric");
         validnumber = false;
         d1Title = "Data Entry Error";
         d1Txt = "For number for lines to combine;";
         d2Txt = "Enter a number.";
         doMessage();

  • How do I know if I can convert a String value to an int value or not?

    Hi,
    I want to know how to make the judgment that if I can convert a String value to an int value or not? Assume that I don't know the String is number or letters
    Thank you

    Encephalopathic wrote
    Again, why?One of the problems (have been dued) in my codelab asks us to write a class as follow
    Write a class definition of a class named 'Value' with the following:
    a constructor accepting a single integer paramter
    a constructor with no parameters
    a method 'setVal' that accepts a single parameter,
    a boolean method, 'wasModified' that returns true if setVal was ever called for the object.
    a method 'getVal' that returns an integer value as follows: if setVal has ever been called, it getVal returns the last value passed to setVal. Otherwise if the "single int parameter" constructor was used to create the object, getVal returns the value passed to that constructor. Otherwise getVal returns 0.
    The setVal(int y) returns nothing, so how do I know whether it has been called or not?
    Thank you

  • Convert from String to float

    How do I convert from String to float?

    Hi,
    you can use a Double for example - assuming value is that string to parse
    float f;
    try { Double d = new Double(value); f = d.floatValue(); }
    catch (NumberFormatException e) { f = 0.0; } // error - string value could not be parsed
    // here use your float fHope, that helps
    greetings Marsian
    P.S.: the Double class is usefull for that, because you also can get intValue(), doubleValue() or longValue() out of it for example. The StreamTokenizer for example parses numbers also only to double.

  • String date to integer

    Need help.
    Does anybody know how to convert a string date to int..
    format of the date is like this(dd-mm-yyyy) example ->15-Aug-1993.
    I would like to convert the corresponding month to int...
    like for Jan=1, Feb=2,Mar=3...Aug=8...Dec=12...
    is there any method in java which supports this kind of conversion?
    sample codes would be of great help.
    Thanks in advance.

    If your intention is to convert "15-Aug-1993" into "15-8-1993", ie a string->string conversion, use a SimpleDateFormat to parse the first string into a Date. And then use another one to format the date into the appropriate format.
    If you want to obtain an integer value from the string according to the scheme you presented, you could parse it as above then use the getMonth() mehod of the Date class. Note: the returned value is zero based (January is zero, not one) and the method is deprecated.
    It's better to use the Calendar class:
    * Use SimpleDateFormat to obtain a Date (ie parse the string)
    * create a Calendar instance and set its time to the date
    * use the get() method of Calendar to obtain the month
    The Calendar class defines a number of int values: Calendar.JANUARY, Calendar.FEBUARY etc. Mostly you use these values without knowing or caring what int values they have.

  • Date Formatting, Converting from String to Timestamp

    I am trying to convert a string date to timestamp.
    I have tried a couple of different ways to arrive at the end result.
    I am basically trying to convert a date in the "dd-MM-yyyy" format to a timestamp.
    If I use the following code, I get a date like this "18-May-2004 12:00:00 AM".
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy);
    Date dContractDate = sdf.parse("18-05-2004");
    long dateInMilli = dContractDate.getTime();
    bHelp.bcontractdate = new Timestamp(dateInMilli);
    How can I make this code display the current time not midnight or some defaulted value?
    Thanks.

    I think a clever person would reuse their Date.classObject and call Date.setTime() as opposed to always
    rolling out a new Date()
    Not really a question of cleverness. Your code wins
    nothing. Objects are not magically created and garbage collected in the ether.
    The cost of creating a Date is nothing
    compared to the cost of a format() call. True, but not valid a valid statement pertaining to the issue which is
    "does always rolling dates suffer a performance hit?"
    Plus you lost clarity Maybe you loose track of your code if you don't make new Objects all the time,
    but I have never suffered from this.
    Why do you think Sun provided the setDate() method?
    and thread-safety.I have only had Thread issues when I didn't program them properly.
    Luckilly I always program the correctly ;) (Touch wood)
    The facts as I seem are thus:
    Rolling new dates on a 1.83 GHZ PC incurrs on average
    a 19% penalty. Here is the proof.
    Save this program and save it as DateTest.java
    If you don't want to waste the time here are the results of running it
    through the default 10 iterations.
    Running 10 iterations.
    Reuse of dates is 27% more efficient
    Reuse of dates is 17% more efficient
    Reuse of dates is 18% more efficient
    Reuse of dates is 20% more efficient
    Reuse of dates is 20% more efficient
    Reuse of dates is 17% more efficient
    Reuse of dates is 17% more efficient
    Reuse of dates is 20% more efficient
    Reuse of dates is 20% more efficient
    Reuse of dates is 18% more efficient
    Gaining "nothing " actually = 19% on average
    Low percent diff = 17 High percent diff = 27
    Run it 100 times and it should still be around 19%
    With the hi time being about 47% (Probably the result of garbage collecting)
    //////////////////////////////////// <PROOF> ///////////////////////////////////////
    import java.util.Date;
    public class DateTest
    DateTest()
    public int run()
    int percent = 0;
    int loopCount = 0;
    Date date = null;
    int z=0;
    long start1=0,end1=0,start2=0,end2=0,now=0;
    int time1 = 0,time2 = 0;
       now = System.currentTimeMillis();
       date = new Date(now);
       loopCount = 10000000;
       start1    = System.currentTimeMillis();
       for(z=0;z<loopCount;z++)
          now = System.currentTimeMillis();
          date.setTime(now);
       end1 = System.currentTimeMillis();
       start2    = System.currentTimeMillis();
       for(z=0;z<loopCount;z++)
          now   = System.currentTimeMillis();
          date  = new Date(now); // use 'now' so test loops are =.
       end2 = System.currentTimeMillis();
       time1 = (int)(end1 - start1);
       time2 = (int)(end2 - start2);
       percent = ((time2-time1)*100/time2);
       System.out.println("Reuse of dates is "+percent+"% more efficient");
       return percent;
    public static void main(String args[])
    int z=0;
    int lowP=100,hiP = 0;  // lowpercent/highpercent
    DateTest d = new DateTest();
    int loopCount = 0;
    long totals   = 0;
    int average   = 0;
    int values[];
    int retVal = 0;
       try // Yea olde Lazy person's command line handler :)
          loopCount = Integer.parseInt(args[0]);
       catch(Exception any)
          loopCount = 10;
       if(loopCount == 0)
          loopCount = 10;
       values = new int[loopCount];
       System.out.println("Running "+loopCount+" iterations.");
       for(z=0;z<loopCount;z++)  //
          retVal = d.run();
          if(lowP > retVal)
             lowP = retVal;
          if(hiP < retVal)
             hiP = retVal;
          values[z] = retVal;
       for(z=0;z<loopCount;z++)
          totals += (long)values[z];
       average = (int)(totals/loopCount);
       System.out.println(" Gaining \"nothing \" actually = "+average+"% on average");
       System.out.println("Low percent diff = "+lowP+" High percent diff = "+hiP);
    }////////////////////////////////// </PROOF> /////////////////////////////////////////
    Your "nothing" is in fact on average about a 19% performance hit. per call.
    These inefficiencies build up and java is infested with the,
    Was it not so the java would run much more efficiently than it now does.
    Ask yourself; why did Sun supply the setDate() method???
    (T)

  • How do you turn a string into an integer?

    how do you turn a string into an integer?
    for ex, if i wanted to turn the string "5" into the integer 5, how would i do that?

    String stringNumber="5";
    try{
    int number=Integer.parseInt(stringNumber);
    }catch(NumberFormatException e){
    System.out.println("The string "+stringNumber+" must be a number!");
    }

  • Can't convert int to java.lang.Integer.

    Hi everyone.
    I'm working on an auction site at the moment and have problems gaining a bidID number. This is part of my code and my error.
    AuctionFacade aHse = (AuctionFacade) application.getAttribute("AuctionFacade");
    String strTraderName = (String)session.getAttribute("traderName");
    String strPassword = (String)session.getAttribute("password");
    String strIDNum = request.getParameter("auctionID");
    Integer intID = Integer.valueOf(strIDNum);
    Integer [] bids = aHse.getAllBids(intID);
    float fltYourBid = aHse.getBidPrice(bids.length);
    ^
    Can't convert int to java.lang.Integer.
    can anyone help please?

    So, does "aHse.getBidPrice" expect an int or an Integer as its parameter? And does it return an int, or an Integer, or what? The answer to those questions may lead to your solution -- look at what you are actually using as the parameter, for example.

  • Converting a String to an Object

    Is there some way of converting a String (from a textfield) to an Object? What I want is something similar to the functionality offerred by a JTable. This is because I want the user to be able to input a value of any type to the textfield (e.g. String, int, boolean, etc) and get its object representation ...
    Would a simple cast do ?
    David

    dattard,
    A string is an object, when someone enters something into a JTextField, REGARDLESS of what it is (int, double, string, etc) it is stored in the string text in that text field (JTextField.getText()).
    So if someone enters in "123", its the STRING 123, not the number one hundred and twenty three... to GET the number 123, you'll need to do something like:
    int value = Integer.parseInt( myTextField.getText() );
    to have the string parsed for the value, if you want a double, same idea:
    double value = Double.parseDouble( myTextField.getText() );
    NOTE: The number wrapper classes (Integer, Double, Float, etc.) contain "parseXXXX" methods that allow you to parse a corresponding numeric value out of a String object.
    Also, when a user enters ANYTHING into a text input field of any type, its ALWAYS a String, if you want a different version of what they entered, its up to you to parse it and decide what it was.

Maybe you are looking for

  • Hp officejet pro 6830 e-all-in-one series

    install & setup my hp officejet pro 6830 e-all-in one printer

  • ALV tree in docking container

    i am trying to call a docking container (on hotspot click of ALV.-> Reuse_alv_grid_display). And a alv tree is to be displayed in docking container. I have wrote the entire code and there is no error is thrown by the system, but docking container dis

  • Why is Photoshop Touch reducing my file size?

    The original photo I'm working with is 2.6 MB taken with my iPhone, editing is being done in Photoshop Touch on an iPad 2. After adjusting contrast and color and trying to export, the file is 41kb. There don't seem to be any tutorials on exporting pr

  • EXPDP exported data in some tables but exported zero rows in others

    Hello, Good day and top of the day to you. I created a parfile for expdp and the content is as below : DIRECTORY=EXPORTBANKSYS FILESIZE=4G INCLUDE=TABLE JOB_NAME=exportbanksys LOGFILE=banksytables PARALLEL=4 SCHEMAS=BANKSYS DUMPFILE=banksystables%U.d

  • NWDS ClassCastException for Enums

    Hi, using NWDS 7.1.1, when I open a java file with this content: package test; public enum TestEnum { The editor fails to open with an exception as shown below. It appears some SAP code expects something else than EnumDeclaration in AnnotationImpl. I