回 帖 发 新 帖 刷新版面

主题:[讨论]哪个高手帮我看看这程序,急...............

import java.io.*;

public class Text 

  public static void main(String [] agrs)
 {
     int count=0;
  int first=0;
  int second=0;
  String text="welcome to you welcome to you welcome to you welcome to you";
  String s="";
  String subText=text;
  System.out.println("请输入要统计的词;");
  try{ 
       BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        s=in.readLine();
      }catch(IOException e){}
     for(int i=1;i<=text.length();i+=second+1)
     {  
          
       second=subText.indexOf("");
       String temp=subText.substring(first,second);
       if(s.equalsIgnoreCase(temp)) count++;
       subText=subText.substring(second+1);
     }
     if(count==0)
      System.out.println("词"+s+"没有出现");
     else
      System.out.println("词"+s+"出现"+count+"次");
  }
}
 为什么我输入to结果说没出现过?

回复列表 (共2个回复)

沙发

second=subText.indexOf(""); 你这里取的值永远都是0.


你可以试试

public class FindConutStr {
    public static void main(String[] args) {
        int count = 0;
        int first = 0;
        String str = "welcome to you welcome to you welcome to you welcome to you";
        String subStr = str;
        String s = "";
        System.out.println("请输入要统计的字符串!");
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            s = in.readLine();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
        int len = str.length();
        int sLen = s.length();
        for (int i = 0; i < len; i++) {
            first = subStr.indexOf(s);
            try {
                String temp = subStr.substring(first, first + sLen);
                if (s.equalsIgnoreCase(temp)) {
                    count++;
                }
            } catch (IndexOutOfBoundsException e) {
                break;
            }
            subStr = subStr.substring(first + sLen);
        }
        if (count == 0) {
            System.out.println(s + "没有出现过");
        } else {
            System.out.println(s + "出现过" + count + "次");
        }
    }
}

板凳

你回的帖很好,指出我哪里错误,谢啦!

我来回复

您尚未登录,请登录后再回复。点此登录或注册