java程序问题。

我想做一个程序。在上面的文本框里输入一些东西。按下按钮,下面可以分析出来句子中有几个英文汉字数字符号空格程序思路有了,界面也做出来了。方法那块儿有语法错误。高手指点一下。... 我想做一个程序。
在上面的文本框里输入一些东西。
按下按钮,下面可以分析出来句子中有几个英文汉字数字符号空格
程序思路有了,界面也做出来了。
方法那块儿有语法错误。高手指点一下。谢谢
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Zok extends JFrame implements ActionListener{
JButton b1=new JButton("统计");
JLabel l=new JLabel ("请输入");
JLabel l1=new JLabel("数字个数");
JLabel l2=new JLabel("英文个数");
JLabel l3=new JLabel("汉字个数");
JLabel l4=new JLabel("空格个数");
JLabel l5=new JLabel("符号个数");
JLabel kong=new JLabel("");
JTextField tf=new JTextField(15);
JTextField tf1=new JTextField(15);
JTextField tf2=new JTextField(15);
JTextField tf3=new JTextField(15);
JTextField tf4=new JTextField(15);
JTextField tf5=new JTextField(15);
JPanel pane=new JPanel();

int shuzi=0;
int yingwen=0;
int hanzi=0;
int kongge=0;
int fuhao=0;

String s;
char[] cc=new char[15];
Integer [] ii;
int t;

public Zok(){
super("Zokgadda字数统计表");
setSize(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);

pane.add(l);
pane.add(tf);
pane.add(kong);
pane.add(b1);
pane.add(l1);
pane.add(tf1);
pane.add(l2);
pane.add(tf2);
pane.add(l3);
pane.add(tf3);
pane.add(l4);
pane.add(tf4);
pane.add(l5);
pane.add(tf5);
b1.addActionListener(this);
pane.setLayout(new GridLayout(7,2));
setContentPane(pane);
}
public static void main(String[] args){
JFrame Frame=new Zok();
Frame.show();
}
public void actionPerformed(ActionEvent evt){
if(evt.getSource()==b1){
s=tf.getText();
for(t=0;t<=s.length();t++){
cc[t]=(s.charAt(t));
ii[t]=Integer.parseInt(cc[t]);
}
for(t=0;t<s.length();t++){
if(ii[t]==32) {kongge++;break;}
if((ii[t]>=65)&(ii[t]<=90)||(ii[t]>=97)&(ii[t]<=122)){yingwen++;break;}
if((ii[t]>=48)&(ii[t]<=57)){shuzi++;break;}
if((ii[t]>=0)&(ii[t]<=255)){fuhao++;break;}
}
hanzi=s.length()-shuzi-fuhao-yingwen-kongge;
tf1.setText(""+shuzi);
tf2.setText(""+yingwen);
tf3.setText(""+hanzi);
tf4.setText(""+kongge);
tf5.setText(""+fuhao);
}

}
}
回复:回答者: myoneju - 见习魔法师 二级
大哥~可不可以把整段代码发出来~ 解决了给你100分都没问题啊~~~~
按你说的改了还是编译出错,我的是jdk 1。4
展开
 我来答
LWind
推荐于2016-09-24
知道答主
回答量:23
采纳率:0%
帮助的人:17.6万
展开全部

---------------------------------------------------- 

char[] cc=new char[15]; 

Integer [] ii; 

改为: 

char cc; 

Integer ii; 

---------------------------------------------------- 

如果是jdk1.1以上 

Frame.show(); 

改为: 

Frame.setVisible(true); 

---------------------------------------------------- 

public void actionPerformed(ActionEvent evt){ 

if(evt.getSource()==b1){ //这句可以不要 

s=tf.getText(); 

for(t=0;t<=s.length();t++){

//循环次数应该是s.length()-1,这里造成了Local information is not present错误 

cc[t]=(s.charAt(t)); 

ii[t]=Integer.parseInt(cc[t]); 

for(t=0;t<s.length();t++){ 

if(ii[t]==32) {kongge++;break;} 

if((ii[t]>=65)&(ii[t]<=90)||(ii[t]>=97)&(ii[t]<=122)){yingwen++;break;} 

if((ii[t]>=48)&(ii[t]<=57)){shuzi++;break;} 

if((ii[t]>=0)&(ii[t]<=255)){fuhao++;break;} 

hanzi=s.length()-shuzi-fuhao-yingwen-kongge; 

tf1.setText(""+shuzi); 

tf2.setText(""+yingwen); 

tf3.setText(""+hanzi); 

tf4.setText(""+kongge); 

tf5.setText(""+fuhao); 

改为: 

public void actionPerformed(ActionEvent evt){ 

//-------------------------------------------------- 

shuzi=0; 

yingwen=0; 

hanzi=0; //变量初始化,防止数量累加 

kongge=0; 

fuhao=0; 

//-------------------------------------------------- 

s=tf.getText(); 

for(t=0;t<s.length();t++){ 

cc=(s.charAt(t)); 

ii=Integer.valueOf(cc); 

if(ii==32) {kongge++;continue;} else 

if((ii>=65)&(ii<=90)||(ii>=97)&(ii<=122)){yingwen++;continue;} else 

if((ii>=48)&(ii<=57)){shuzi++;continue;} else 

if((ii>=0)&(ii<=255)){fuhao++;continue;} 

hanzi=s.length()-shuzi-fuhao-yingwen-kongge; 

tf1.setText(""+shuzi); 

tf2.setText(""+yingwen); 

tf3.setText(""+hanzi); 

tf4.setText(""+kongge); 

tf5.setText(""+fuhao); 

------------------------------------------------------- 

PS:楼主可不可以加多几分,俺没分了,呵呵。

运行结果:

gua331921839
2009-04-15 · TA获得超过204个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:108万
展开全部

语法错误:

ii[t] = Integer.parseInt(cc[t]);

改为:

ii[t] = Integer.parseInt(s,cc[t]);

但程序运行计算有错。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pkzahc
2009-04-15 · TA获得超过444个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:0
展开全部
if(evt.getSource()==b1){
s=tf.getText();
for(t=0;t<=s.length();t++){
cc[t]=(s.charAt(t));
//这里有问题,改成ii[t]=Integer.parseInt((int)cc[t]);
ii[t]=Integer.parseInt(cc[t]);
}
for(t=0;t<s.length();t++){
//以下所有的break全部换成continue;
if(ii[t]==32) {kongge++;break;}
if((ii[t]>=65)&(ii[t]<=90)||(ii[t]>=97)&(ii[t]<=122)){yingwen++;break;}
if((ii[t]>=48)&(ii[t]<=57)){shuzi++;break;}
if((ii[t]>=0)&(ii[t]<=255)){fuhao++;break;}
}
OK,没问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack2004moon
2009-04-15 · TA获得超过160个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:86.1万
展开全部
把这个ii[t]=Integer.parseInt(cc[t]);
改成ii[t]=Integer.parseInt(new Character(cc[t]).toString());
或则改成 ii[t] = Integer.parseInt(s,cc[t]);
或则改成 ii[t] = new Integer((byte)char)
语法没错误了哈。
你这个逻辑上还有点问题,
for(t=0;t<s.length();t++){
//以下所有的break全部换成continue;
.
.
.
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式