具体代码如下..........编译无问题........运行的时候输入字符串就错误
import javax.swing.JOptionPane;public class test{
public static void main(String[] args){
String s=JOptionPane.showInputDialog("Enter a string:");
int[] counts=count(s.toLowerCase());
String output="";
for(int i=0;i<counts.length;i++){
if(counts[i]!=0){
output+=i+" appears "+counts[i]+((counts[i]==1)?"time\n":"times\n");
}
}
JOptionPane.showMessageDialog(null, output);
}
public static int[] count(String s){
int []counts=new int[10];
char[] chars=s.toCharArray();
for(int i=0;i<s.length();i++){
if(Character.isDigit(chars[i]))
counts[chars[i]]++;
}
return counts;
}
}
Debug模式下运行貌似发现counts[chars[i]]++;这句有问题............我用的eclipse......
求高人解答谢谢!
import javax.swing.JOptionPane;public class test{
public static void main(String[] args){
String s=JOptionPane.showInputDialog("Enter a string:");
int[] counts=count(s.toLowerCase());
String output="";
for(int i=0;i<counts.length;i++){
if(counts[i]!=0){
output+=i+" appears "+counts[i]+((counts[i]==1)?"time\n":"times\n");
}
}
JOptionPane.showMessageDialog(null, output);
}
public static int[] count(String s){
int []counts=new int[10];
char[] chars=s.toCharArray();
for(int i=0;i<s.length();i++){
if(Character.isDigit(chars[i]))
counts[chars[i]]++;
}
return counts;
}
}
Debug模式下运行貌似发现counts[chars[i]]++;这句有问题............我用的eclipse......
求高人解答谢谢!
解决方案 »
- Morgan.Kaufmann.Java.Practical.Guide.for.Programmers 这本书有中文版吗,下载地址?、
- 多线程技术的实现
- 急求一java“不等于几个单词”正则表达式的写法
- 关于Frame的windowsListener原理的疑问
- 在ant中执行exec的copy命令不成功
- JAVA初学者两问题
- 用 jarsigner 打签名的时候 怎样可以设置 签名版本号 也就是 .SF 文件中的 Signature-Version:1.0
- 问个关于JBuilder的问题(JBuilder 6)
- java中模拟键盘,然后输入内容
- 写了一个JDBC往数据库增加信息,改了很久还是错误,求各位高手帮看看指导下错误
- IO是如何利用缓冲区来搞高性能的,原理是什么?
- 新手提问:关于整型
替换为int t = Character.getNumericValue(chars[i]);
counts[t]++;
因为char转换为int时使用的是ASCII码,如4转换为int就是52了,所以有数组越界异常出项
main函数里面的for循环不应该用i<counts.length;
改成i<10;
String s=JOptionPane.showInputDialog("Enter a string:"); int[] counts=count(s.toLowerCase()); String output=""; for(int i=0;i <counts.length;i++){
if(counts[i]!=0){
output+=i+" appears "+counts[i]+((counts[i]==1)?"time\n":"times\n");
}
}
JOptionPane.showMessageDialog(null, output);
} public static int[] count(String s){
int []counts=new int[10];
char[] chars=s.toCharArray();
for(int i=0;i <s.length();i++){
if(Character.isDigit(chars[i]))
counts[Integer.parseInt(chars[i]+"")]++;
}
return counts;
} }