下面程序的功能是:在文本区text1中输入数字,在text2中将数字显示出来,并且显示他们的和。
用到了字符串分析。
但,用空格和逗号分割都没有问题,用回车分割时,总会在parseInt这个函数这儿抛出一个NumberFormatException异常,也就是说认为要转换的字符串格式不对。可我明明输入的就是简单的数字。哪位能帮忙看一下,谢谢了
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class Test extends Applet implements TextListener
{
TextArea text1,text2;
public void init()
{
text1=new TextArea(6,15);
text2=new TextArea(6,15);
add(text1);add(text2);
text2.setEditable(false);
text1.addTextListener(this) ;
}
public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
String s=text1.getText();
StringTokenizer fenxi=new StringTokenizer(s," ,'\n'");
int n=fenxi.countTokens();
int a[]=new int[n];
int sum=0;
for(int i=0;i<=n-1;i++)
{
String temp=fenxi.nextToken();
a[i]=Integer.parseInt(temp);
sum=sum+a[i];
}
text2.setText(null); //刷新显示.
for(int i=0;i<a.length;i++)
text2.append(a[i]+" ");
text2.append("\nsum is:"+sum+"\n");
}
}
}
用到了字符串分析。
但,用空格和逗号分割都没有问题,用回车分割时,总会在parseInt这个函数这儿抛出一个NumberFormatException异常,也就是说认为要转换的字符串格式不对。可我明明输入的就是简单的数字。哪位能帮忙看一下,谢谢了
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class Test extends Applet implements TextListener
{
TextArea text1,text2;
public void init()
{
text1=new TextArea(6,15);
text2=new TextArea(6,15);
add(text1);add(text2);
text2.setEditable(false);
text1.addTextListener(this) ;
}
public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
String s=text1.getText();
StringTokenizer fenxi=new StringTokenizer(s," ,'\n'");
int n=fenxi.countTokens();
int a[]=new int[n];
int sum=0;
for(int i=0;i<=n-1;i++)
{
String temp=fenxi.nextToken();
a[i]=Integer.parseInt(temp);
sum=sum+a[i];
}
text2.setText(null); //刷新显示.
for(int i=0;i<a.length;i++)
text2.append(a[i]+" ");
text2.append("\nsum is:"+sum+"\n");
}
}
}
可以抛出异常如下:
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class test extends Applet implements TextListener
{
TextArea text1,text2;public void init()
{
text1=new TextArea(6,15);
text2=new TextArea(6,15);
add(text1);add(text2);
text2.setEditable(false);
text1.addTextListener(this) ;
}public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
String s=text1.getText();
StringTokenizer fenxi=new StringTokenizer(s," ,'\n'");
int n=fenxi.countTokens();
int a[]=new int[n];
int sum=0;for(int i=0;i<=n-1;i++)
{
String temp=fenxi.nextToken();
try{a[i]=Integer.parseInt(temp);} //修改这里
catch(NumberFormatException ee){} //增加这里
sum=sum+a[i];
}text2.setText(null); //刷新显示.for(int i=0;i<a.length;i++)
text2.append(a[i]+" ");text2.append("\nsum is:"+sum+"\n");
}
}
}
import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class test extends Applet implements TextListener
{
TextArea text1,text2;public void init()
{
text1=new TextArea(6,15);
text2=new TextArea(6,15);
add(text1);add(text2);
text2.setEditable(false);
text1.addTextListener(this) ;
}public void textValueChanged(TextEvent e)
{
if(e.getSource()==text1)
{
String s=text1.getText();
StringTokenizer fenxi=new StringTokenizer(s); //再修改这里就OK了
int n=fenxi.countTokens();
int a[]=new int[n];
int sum=0;for(int i=0;i<=n-1;i++)
{
String temp=fenxi.nextToken();
try{a[i]=Integer.parseInt(temp);}
catch(NumberFormatException ee){}
sum=sum+a[i];
}text2.setText(null); //刷新显示.for(int i=0;i<a.length;i++)
text2.append(a[i]+" ");text2.append("\nsum is:"+sum+"\n");
}
}
}