一道java编程题 求助
目的是统计每个数字在字符中出现的次数,可是零怎么就输出来后变成了除了数字以外的字符个数了啊???帮忙指点一下~importjavax.swing.JOptionPane;...
目的是统计每个数字在字符中出现的次数,可是零怎么就输出来后变成了除了数字以外的字符个数了啊???帮忙指点一下~
import javax.swing.JOptionPane;
public class eight_5 {
public static void main(String[] args)
{
String s="SSN is 343 32 4545 and ID is 434 34 4323";
int[]counts=count(s);String output="";
for(int i=0;i<10;i++)
{
if(counts[i]!=0)
output+=i+" "+"appears "+counts[i]+"\n";
}
JOptionPane.showMessageDialog(null,output);
}
public static int[]count (String s)
{
int[]counts=new int[10];
for(int i=0;i<s.length();i++)
{ int num=0;
if(Character.isDigit(s.charAt(i)))
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
}
return counts;
}
} 展开
import javax.swing.JOptionPane;
public class eight_5 {
public static void main(String[] args)
{
String s="SSN is 343 32 4545 and ID is 434 34 4323";
int[]counts=count(s);String output="";
for(int i=0;i<10;i++)
{
if(counts[i]!=0)
output+=i+" "+"appears "+counts[i]+"\n";
}
JOptionPane.showMessageDialog(null,output);
}
public static int[]count (String s)
{
int[]counts=new int[10];
for(int i=0;i<s.length();i++)
{ int num=0;
if(Character.isDigit(s.charAt(i)))
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
}
return counts;
}
} 展开
1个回答
展开全部
int num=0;
if(Character.isDigit(s.charAt(i)))
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
这样写的话,如果 s.charAt(i) 是数字,那么 num 是正确的数值,否则如果 s.charAt(i) 不是数字的话,num 就总是。你这个写法等价于:
int num=0;
if(Character.isDigit(s.charAt(i))) {
num=Integer.parseInt(String.valueOf(s.charAt(i)));
}
counts[num]++;
这样的效果 counts[0] 的值等于所有不是数字的字母数量 加上 数字0的数量。
而按照想要达到的目的,你应该这样写:
int num=0;
if(Character.isDigit(s.charAt(i))) {
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
}
希望能给你点帮助。
if 语句,在后面 没有 {}的情况下,if 只能影响紧随其后的一条语句。
if(Character.isDigit(s.charAt(i)))
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
这样写的话,如果 s.charAt(i) 是数字,那么 num 是正确的数值,否则如果 s.charAt(i) 不是数字的话,num 就总是。你这个写法等价于:
int num=0;
if(Character.isDigit(s.charAt(i))) {
num=Integer.parseInt(String.valueOf(s.charAt(i)));
}
counts[num]++;
这样的效果 counts[0] 的值等于所有不是数字的字母数量 加上 数字0的数量。
而按照想要达到的目的,你应该这样写:
int num=0;
if(Character.isDigit(s.charAt(i))) {
num=Integer.parseInt(String.valueOf(s.charAt(i)));
counts[num]++;
}
希望能给你点帮助。
if 语句,在后面 没有 {}的情况下,if 只能影响紧随其后的一条语句。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询