Jump to content
  • Advertisement
Sign in to follow this  
Tanax

[java] NumberFormatException

This topic is 3496 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Woho, I'm here again xD :P Anyway, I know what the exception MEANS, I just don't have a clue why it's being thrown.
Quote:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "300 " at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:456) at java.lang.Integer.parseInt(Integer.java:497) at Account.getLastTransactionData(Account.java:229) at Logic.getLastTransactionData(Logic.java:100) at Logic.writeAccountNote(Logic.java:83) at GUI.actionPerformed(GUI.java:259) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6041) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5806) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4413) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4243) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2440) at java.awt.Component.dispatchEvent(Component.java:4243) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Account.getLastTransactionData(Account.java:229):
public String getLastTransactionData()
    {
    	
    	String expr = "\t";
    	String lastTransaction = this.latestTransactions[0];
    	String[] last = lastTransaction.split(expr);
    	String trans = "";
    	int amount = (int) Integer.parseInt(last[2]);
    	
    	if(this.latestTransactions[1] != null)
    	{
    		
    		String beforeLastTransaction = this.latestTransactions[1];
    		String[] before = beforeLastTransaction.split(expr);
    		int beforeAmount = Integer.parseInt(before[2]);
    		
    		amount -= beforeAmount;
    		
    	}
    	
    	trans = "Transaction date: " + last[0] + "\nTransaction type: " + last[1] + "\nAmount: " + amount;
    	
    	return trans;
    	
    }

Anyone that see's the problem here?

Share this post


Link to post
Share on other sites
Advertisement
The exception has the ending " on a new line which means there is a return in the string.

Try String.trim() on the data before you parse it to an integer.

Share this post


Link to post
Share on other sites
I tried this:

int amount = Integer.parseInt(String.trim(last[2]));


and several other ways to trim the last[2] value, but all of them gives me this:
Quote:

--------------------Configuration: <Default>--------------------
C:\Documents and Settings\Marcus\Skrivbord\Skola\OOP Java\Uppgifter\Upg 4\Account.java:225: trim() in java.lang.String cannot be applied to (java.lang.String)
String lastTransaction = String.trim(this.latestTransactions[0]);
^
C:\Documents and Settings\Marcus\Skrivbord\Skola\OOP Java\Uppgifter\Upg 4\Account.java:235: trim() in java.lang.String cannot be applied to (java.lang.String)
before[2] = String.trim(before[2]);
^
2 errors

Process completed.

Share this post


Link to post
Share on other sites
Oooh, right. Thanks.
I just saw him using String.trim() so I thought that we were using the String object like we used Integer.parseInt().

One small problem now though with this.
I'm saving to a textfile, and how would I get a new line?
I get the data like:

trans = "Transaction date: " + last[0] + "\nTransaction type: " + last[1] + "\nAmount: " + amount;

but \n only gets a weird sign instead of a new line, how would I go around that?

Share this post


Link to post
Share on other sites
FileManager:

public void writeAccountNote(String data) throws FileNotFoundException
{

this.file_write = new File(this.file_name);
this.write_stream = new FileOutputStream(this.file_write);
this.write_printWriter = new PrintWriter(this.write_stream);

this.write_printWriter.print(data);
this.write_printWriter.close();

}



Logic:

public void writeAccountNote() throws FileNotFoundException
{

String filename = this.filemanager.save(2);
String transaction = this.getLastTransactionData();

if(filename != "")
{

this.filemanager.file(filename).writeAccountNote(transaction);

}

}

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!