我碰到一个这样的问题:
public class example {
public static void main(String[] args) {
String str;
int[] sum=new int[10];
str=JOptionPane.showInputDialog("请输入一个16位的整数");
System.out.println("str="+str);
for(int i=0;i<str.length();i++)
{
System.out.print(str.charAt(i)+"\t");
switch((int)str.charAt(i))
{
case 0: sum[0]++;
break;
case 1: sum[1]++;
break;
case 2: sum[2]++;
break;
case 3:sum[3]++;
break;
case 4:sum[4]++;
break;
case 5:sum[5]++;
break;
case 6:sum[6]++;
break;
case 7:sum[7]++;
break;
case 8:sum[8]++;
break;
case 9:sum[9]++;
break;
}
}
System.out.println();
for(int i=0;i<10;i++)
{
System.out.println(i+"出现了 "+sum[i]+"次");
}
}
}
但是无论输入什么样的结果,但数组中的元素都是0。
运行结果如下:
str=1548796532145879 0出现了 0次
1出现了 0次
2出现了 0次
3出现了 0次
4出现了 0次
5出现了 0次
6出现了 0次
7出现了 0次
8出现了 0次
9出现了 0次
public class example {
public static void main(String[] args) {
String str;
int[] sum=new int[10];
str=JOptionPane.showInputDialog("请输入一个16位的整数");
System.out.println("str="+str);
for(int i=0;i<str.length();i++)
{
System.out.print(str.charAt(i)+"\t");
switch((int)str.charAt(i))
{
case 0: sum[0]++;
break;
case 1: sum[1]++;
break;
case 2: sum[2]++;
break;
case 3:sum[3]++;
break;
case 4:sum[4]++;
break;
case 5:sum[5]++;
break;
case 6:sum[6]++;
break;
case 7:sum[7]++;
break;
case 8:sum[8]++;
break;
case 9:sum[9]++;
break;
}
}
System.out.println();
for(int i=0;i<10;i++)
{
System.out.println(i+"出现了 "+sum[i]+"次");
}
}
}
但是无论输入什么样的结果,但数组中的元素都是0。
运行结果如下:
str=1548796532145879 0出现了 0次
1出现了 0次
2出现了 0次
3出现了 0次
4出现了 0次
5出现了 0次
6出现了 0次
7出现了 0次
8出现了 0次
9出现了 0次
解决方案 »
- 关于java网络编程....
- hibernate.cfg.xml与jdbc.propertyes文件的问题
- 如何获得上个月?
- 学习JAVA 一个半月时间,遇到一些基本问题, 烦请高手们的解答下或菜鸟们共同学习下.
- windows下安装eclipse的cdt插件,应该怎样运行它的项目呢?
- 我想用JAVA做一个EMAIL系统,请高手帮帮我。答得好的有分。
- 怎么通过字符串生成一个文件?
- 哪里能买到比较便宜的Java编程思想(喉结译的),请知者告之!
- 求救:小弟初学java就遇到困难,为什么我的程序编译过了却不能运行?
- 目前java sdk的最高版本,以及哪里有的下载??
- JTABLE中对某一列的操作
- 关于 map 的一些困惑 高手 帮帮忙!!!!
--------------------------
我认为是这里的问题。
str.charAt(i)返回一个char型的结果,再((int)str.charAt(i))会取得它的ascii码。
import javax.swing.*;
public class example {
public static void main(String[] args) {
String str;
int[] sum = new int[10];
System.out.println("shuzu "+ sum[0]);
str = JOptionPane.showInputDialog("请输入一个16位的整数");
System.out.println("str=" + str);
for (int i = 0; i < str.length(); i++) {
System.out.print(str.charAt(i) + "\t");
System.out.print((int)str.charAt(i) + "\t");
switch ((int) str.charAt(i)) {
case 49:
sum[0]++;
break;
case 50:
sum[1]++;
break;
case 51:
sum[2]++;
break;
case 3:
sum[3]++;
break;
case 4:
sum[4]++;
break;
case 5:
sum[5]++;
break;
case 6:
sum[6]++;
break;
case 7:
sum[7]++;
break;
case 8:
sum[8]++;
break;
case 9:
sum[9]++;
break; }
} for (int i = 0; i < 10; i++) {
System.out.println(i + "出现了 " + sum[i] + "次");
}
}
}