我需要计算在命令行中传递的字符串中字符的出现次数。例如,如果我们传递一个句子“面包是湿的”,并且我们正在寻找字符“e”的出现,程序应该输出每个单词的出现“e”:1 1 0 1.
我是Java新手,我提出的不起作用:
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < args.length; i++) {
// System.out.println(args[i]+" ");
if (args[i].charAt(i) == 'e') {
count++;
}
System.out.println(count);
}
}
显然,args [i] .charAt(i)在这里是错误的,因为它看起来像是第一个单词的第一个字母。但是,args.charAt(i)甚至不起作用。 我不知道如何解决这个问题并获得正确的输出。
答案 0 :(得分:3)
要解决它,你需要有两个循环。
你现在正在做的事情是i
代表参数args[i]
的位置(好),并且使用相同的i
尝试获取字符charAt(i)
(错)。
换句话说,对于第一个参数,你只检查第一个字符,第二个,第二个,...,对于n参数,你检查该参数的n个字符。
为避免将来此类问题尝试使用更多功能,功能应侧重于单一问题
public static void countCharOccurence(String input, char search) {
int cound = 0;
for(int i=0; i< input.length; i++){
if(search == input.getAt(i) {
count++;
}
}
}
尝试在main方法中添加它。祝你好运。
答案 1 :(得分:0)
类似的东西(第一个循环遍历arguments数组,第二个循环遍历特定参数):
int count = 0;
for(int i=0; i<args.length; i++ ){
count = 0;
for (int j = 0; j<args[i].length();j++){
if (args[i].charAt(j) == 'e'){
count++;
}
}
System.out.println(count+" ");
}
答案 2 :(得分:0)
你需要一个循环遍历args [i]
的第二个循环public static void main (String[] args) {
int count = 0;
for(int i=0; i<args.length; i++ )
{
int count = 0;
//System.out.println(args[i]+" ");
String test = args[i];
for(int j=0;j<test.length();j++)
{
if (args[i].charAt(j) == 'e'){
count++;
}
}
System.out.println(count);
}
}
答案 3 :(得分:0)
你需要这样做......
public static void main(String ar[])
for(String a:ar)
{
char b[] = a.toCharArray();
for(char c:b)
{
if(c='e')
{
// do some code
}
}
}
}