黑马程序员济南中心JavaEE基础阶段必会案例NO.3

黑马程序员济南中心JavaEE基础阶段必会案例NO.3

 

黑马程序员课程内容丰富多样,每个知识点我们都设计有新奇的案例让大家练习。黑马程序员训练营的课程也是案例驱动教学,每天都会进行大量的代码练习。今天我们就来一起做一个基础阶段第8天的一个小案例。

         案例要求:有一个字符串" woaijavahahajavaaijavawjavao "去除两端空格,删除该字符串中所有的"java" 并且统计删除了多少个“java”

 

         案例分析:我们要用到的知识点:统计思想,String类的方法,循环控制

 

         分析完一个大概以后我们先回顾一下字符串的常用方法,看看我们需要用到哪几个.

         

[Java] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

//1 charAt 根据索引返回该位置的字符[/align]                String s = "jixiaomeng";

char c = s.charAt(6);

System.out.println(c);//m

 

//2 contains 传入字符串  判断是否包含该字符串

boolean b = s.contains("jixiaomeng");

System.out.println(b);//true

 

//3 equals 是否相等   equalsIgnoreCase

boolean b2 = s.equals("xiao");

System.out.println(b2);//false

 

//4 boolean endsWith(String suffix) startWith

boolean b3 = s.endsWith("g");//jixiaomeng

System.out.println(b3);//true

 

//5 int indexOf(int ch) 小串再大串中第一次出现的索引

//int lastIndexOf(String str)

String s5 = "hwheimaloWorheimald";

int i = s5.indexOf("heima");//2

System.out.println(i);//2

int i2 = s5.lastIndexOf("heima");

System.out.println("i2= "+i2);//12

 

//6 isEmpty 判断是否为空

boolean b4 = s5.isEmpty();

System.out.println("b4= "+b4);//false

 

//7 length()长度

int i3 = s5.length();

 

//8,切割:split  返回的是字符串数组

String s7 = "86-136 202 030 30";

//{"86","13620203030"}

String[] srr = s7.split(" ");

for(int x=0;x<srr.length;x++){

        System.out.println(srr[x]);

}

 

//9  截取:subString  截取一个字符串返回新的字符串,不影响之前的

String s8 = "hwheimaloWorheimald";

String s9 = "heima";

int index = s8.indexOf(s9);//heima 的h第一次出现的索引

int index2 = index+s9.length();

System.out.println(index2);

String s10 = s8.substring(index2);// 一个参数的方法:截取到末尾

System.out.println(s10);

 

String s11 = s8.substring(7,11);//lowo  包含7 不包含11

System.out.println(s11);

 

//10 toUpperCase变成大写   toLowerCase变成小写

 

//11 trim 去除两端空格

 

//12 toCharArray  把字符串转换成字符类型的数组

char[] crr = s9.toCharArray();//heima

//{'h','e','i','m','a'}

          

     ok,我们发现有个方法是去除空格的trim()方法。indexOf( ) 方法可以找到目标字符串,而substring()方法可以截取目标字符串。好,大概的思路已经有了,我们开始敲啦~~

       

     首先用trim方法去空格,注意,trim并不改变原字符串所以要重新赋值给s 这样s就没空格了,String类中很多方法都没有改变原字符串比如subsring  toUpperCase等等,一定要注意啊。

    然后我们用indexOf方法找到第一个java所在的索引,然后用substring方法截取java前后的字符串拼接成新的字符串再赋值给s,这样s中第一个java就神奇的被删除了,哈哈,  (其实一点也不神奇。。)

     ok,anyway,我们只要重复这个步骤就会删除所有的java,那你是不是想到了循环呢? 没错循环是个好帮手,但是一定要明确结束的条件。我们知道indexOf方法有个特点,如果大字符串中不存在查找的小字符串就会返回-1,我们正好利用这一点,好,开敲!

     

[Java] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

public class Test {[/align]        public static void main(String[] args) {

                String s = " woaijavahahajavaaijavawjavao ";

                s = s.trim();        //trim不改变原字符串

                int index = s.indexOf("java");//找到java的位置

                int count = 0;//统计删除了多少个java

                while(index!=-1){//当字符串中不再包含java时就会返回-1

                        s = s.substring(0,index)+s.substring(index+4);//截取java前后的字符串拼接成新字符串

                        index = s.indexOf("java");//继续找下一个java,直到返回-1

                        count ++;//计数器增加

                }

                System.out.println(s);

                System.out.println("删除了"+count+"个");//输出结果

        }

}

运行看一看:
 
    大功告成!

    这个案例作为一个经典案例用来复习String类方法,循环,计数器思想等等知识点非常不错,很新颖。其实,每个案例都有很多种写法,不同的人可能有不同的思路,比如这个题有的同学用replace方法 也就是替换方法,用空字符串替代java也可以实现删除java的目的。黑马程序员训练营也是非常鼓励大家开动脑筋积极思考的。

 

 

黑马!加油!

 

转载于:https://my.oschina.net/u/3825479/blog/1802882

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值