import java.util.Scanner;public class Counter
{
public int counter(String inputs, String word)
{
int counter = 0;
int index = 0;
for (int i = 0; i < inputs.length() - 1; i++)
{
if (inputs.indexOf(word) == 0)
{
counter++;
index++;
}
}
return counter;
} public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Counter find = new Counter();
System.out.print("请输入一个字符串:");
String inputs = input.next();
System.out.print("请输入要查找的字符:");
String word = input.next();
int num = find.counter(inputs, word);
System.out.println(inputs + "中包含" + num + "个" + word);
}
}
我输出的结果是字符的下标,而不是次数,那位大神帮我修改一下~谢谢!

解决方案 »

  1.   

    给你一个简单的思路
    假如
    输入预定字符串:aabbccbbgggg
    输入要查找字符:b
    现在用String里面的replaceAll方法把预定字符串的b都换成这个""
    之后在判断被替换后的字符串长度,和原来的长度差是多少相信你懂了其他方法
    map集合
    利用键值对计算
      

  2.   

    replaceAll方法没学过啊,有具体点的吗?
      

  3.   

    import java.util.Scanner;public class Counter {
    public int counter(String inputs, String word) {
    int counter = 0;
    int index =0;
    for (int i = 0; i <= inputs.length() - 1; i++) {
    if ( ( index = inputs.indexOf(word) ) !=-1 ) {
    counter++;
    inputs = inputs.substring(index+word.length());
    }
    }
    return counter;
    } public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    Counter find = new Counter();
    System.out.print("请输入一个字符串:");
    String inputs = input.next();
    System.out.print("请输入要查找的字符:");
    String word = input.next();
    int num = find.counter(inputs, word);
    System.out.println(inputs + "中包含" + num + "个" + word);
    }
    }
      

  4.   

    import java.util.Scanner;public class Counter {
    public int counter(String inputs, String word) {
    int counter = 0;
    int index =0;
    //
    // for (int i = 0; i < inputs.length() - 1; i++) { //要用 <=
    // if (inputs.indexOf(word) == 0) {  //要换成!=-1  !=-1意为找到一次,让count++才有意义
    // counter++;
    // index++;  //仔细看看你的index,哪都没用到,这是毛用...
    // }
    // }
    // return counter;

    for (int i = 0; i <= inputs.length() - 1; i++) {
    if ( ( index = inputs.indexOf(word) ) !=-1 ) {

    //上句代码意思为若inputs="abcdefgabckabcii"
    //                          word="abc";
    //则每找到一次abc就,让inputs=从c后的那个d开始形成的子串即为defgabckabcii;
    //然后再循环往覆,直到结束.


    //而上面的for(循环其实意思不大),最好直接用
    // while(( index = inputs.indexOf(word) ) !=-1 ){
    // counter++;
    // inputs = inputs.substring(index+word.length());
    // }

    }
    }
    return counter;
    } public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    Counter find = new Counter();
    System.out.print("请输入一个字符串:");
    String inputs = input.next();
    System.out.print("请输入要查找的字符:");
    String word = input.next();
    int num = find.counter(inputs, word);
    System.out.println(inputs + "中包含" + num + "个" + word);
    }
    }
      

  5.   

    String str = "aafcfasfqefdsasfaff";  
                    //e表示需要匹配的数据,使用Pattern建立匹配模式  
            Pattern p = Pattern.compile("as");  
                    //使用Matcher进行各种查找替换操作  
            Matcher m = p.matcher(str);  
            int i = 0;  
            while(m.find()){  
                i++;  
            }  
              
            System.out.println(i); 正则表达式
      

  6.   

    if (inputs.indexOf(word) == 0)
    {
    counter++;
    index++;
    }
    修改成
    int index = 0;
    int counter = 0;
    String word="as";
    for(int j=0;j<str.length();j++){
    index=str.indexOf(word);
    if (index != -1) {
    counter++;
    if(!"".equals(str)){
    str=str.substring(index+word.length());
    }
    }else{
    break;
    }
    }
    System.out.println(counter);
      

  7.   

    public int counter(String inputs, String word) {
    int counter = 0;
    int index = 0;
    while ((index = inputs.indexOf(word, index)) != -1) {
    counter++;
    index++;
    }
    return counter;
    }
      

  8.   

    你使用的是indexOf就是对比出字符出现的位置,也就是下标,如果不存在返回-1.
    应该用charAt。示例:
      char array_char[];   
      public int counter(String inputs, String word)
      {  
      int total=0;   
      array_char=inputs.toCharArray();   
      for(int i=0;i<array_char.length;i++){   
      if (array_char[i]==(word.charAt(0))){   
      total++;   
      }   
      }   
      return total;   
     } 
      

  9.   

    假定字符串是: str
    要查找的是: word可以:
      String tmp = str.replaceAll("\\Q" + word + "\\E", ""); // 将匹配的字符串全部干掉
      int num = (str.length() - tmp.length()) / word.length(); // 这就是统计出的字符串出现次数了。局限性:
      如果word里面有一些特殊转义组合的话,就会失效。