A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 咕咕猫 于 2013-9-5 18:37 编辑

练习三查找字符串中出现指定字符串出现的次数。例如"ehfiehiehwiuhwefgewugehihfihfri"中"hi"出现的次数.*/
class Test
{
        public static int menthod(String s,String s1)//{:soso_e132:}*****这里有个疑问不太明白,能不能不加static如果不加static应该怎么将程序改变下,这个不太懂.
        {   
                int x=0;//建立一个计数器变量
                if (s.contains(s1))//判断内部是否含有要查找的字符串
                {
                        
                        for (int start = 0; s.indexOf(s1,start)!=-1;)//[s.indexOf(s1,start)!=-1]确保字符串中不再含要有查找的字符串
                        {
                                int y = s.indexOf(s1,start);//记录要查找的字符串出现的位置
                                start = y + s1.length();//改变起始查找位置
                                x++;
                                
                        }
                }
                return x;//返回出现次数
        }
        public static void main(String[]args)
        {
                String s = "ehfiehiehwiuhwefgewugehihfihfri";//基字符串,即在此字符串中进行查找
                String s1= "hi";//所需查找的字符串
                int x = menthod(s,s1);
                System.out.println("x="+x);
        }
}

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

5 个回复

倒序浏览
不可以不加static,因为你主函数调用了menthod方法。主函数调用静态方法
回复 使用道具 举报
路边小色狼 发表于 2013-9-5 16:09
不可以不加static,因为你主函数调用了menthod方法。主函数调用静态方法

那能不能写一种不用静态的方法呢,是不是就要重新建立一个类然后建立对象来调用方法呢
回复 使用道具 举报
咕咕猫 发表于 2013-9-5 16:27
那能不能写一种不用静态的方法呢,是不是就要重新建立一个类然后建立对象来调用方法呢
...

可以,把上面的函数独立出个类来,然后在主函数里new一个对象,再调用就好了
回复 使用道具 举报
static是静态访问修饰符,她要想访问别的类或者本类中的方法,别的类或者方法必须加static,否则不能访问!
如果要访问的不是静态的方法或者类,那么要把static去掉。static是不可以直接访问不是静态的方法或类的。
不加static的类,可以直接访问加static的类。
回复 使用道具 举报
落叶归根 发表于 2013-9-5 18:22
static是静态访问修饰符,她要想访问别的类或者本类中的方法,别的类或者方法必须加static,否则不能访问! ...

嗯嗯非常感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马