本帖最后由 小鲁哥哥 于 2017-8-25 11:08 编辑
【济南中心】JavaEE基础班新课程day08:常用Api
前情回顾:
五一就这样过去了我相信大家和我经历差不多,在假期开始之前是很兴奋的,想象中的旅游是这样的:
但是我相信在中国,大家看到的应该是这样式儿的: 不过总算是浪了一波,回来又要继续战斗啦~
今天我们要学习一个帮助我们开发的文档,叫Api --> 应用程序设计接口 英文叫Application programming interface. 这个文件是长这个样子的,点开是这个样子的: 可以看到,左边是一些类的目录,是java帮我们写好的一些工具类,比如我们之前用过的Scanner 用来接收键盘录入。Random类 用来产生随机数。 今天我们要学的是一个String类,字符串类。什么是字符串?就是字符连成串,我们的软件经常需要处理文字,就要跟字符打交道,所以这个知识点是很重要的。 在学习之前,我们先设想一下会有什么方法? 我们接触一个网站或者软件,常用的有登录注册功能,有搜索功能,这里就会有两个字符串的比较,看看账号是不是存在在服务器中啊,看看你搜索的这个关键字和那个产品匹配啊,这个功能应该有,除此之外还有很多,我们一一来看。
String类的 构造方法:
构造方法也是一种方法,它有它的特殊性,没有返回值连void都没有,方法名和类名相同,我们之前学习面向对象的时候知道创建对象就是调用它的构造方法,比如 Student s = new Student(); 就是调用它的空参构造。 Student s2 = new Student("张三",23); 就是调用它的有参构造。
我们这里学习String类的构造方法也是用来创建字符串对象的,当然我们可以通过String str = "HelloWorld"; 这种直接赋值的方式创建字符串对象。也可以通过构造方法,常用的构造方法有: String() String(char[] value) String(String str) String(StringBuilder builder) 这几个构造方法都可以创建String对象,传入的参数不同当然作用就不同, String() -- 创建一个空的字符串对象 -- String str = new String(); String(char[] value) -- 把一个字符数组变成字符串对象 -- char[] ch = {'a','b','c'} ; String str = new String(ch); String(String str) -- 把一个字符串变成字符串对象 -- String str = new String("HelloWorld"); String(StringBuilder builder) -- 把一个带缓冲区的StringBuilder对象变为一个String对象 StringBuilder sb = new StringBuilder("abc"); String str = new String(sb); 不过我们常用的方式还是 String str = "abc";
String类的方法: 这里就是我们今天的重中之重,String类的方法,挺多的,先了解一下,在练习中去体会 并加深记忆。 还记得我们之前学习方法的时候说写一个方法什么最重要吗? 对,参数和返回值。就是我们需要给他什么,他给我们返回什么。 这里我们学习String的方法需要明白,1,这个方法的功能。2,这个方法有参数吗,什么类型的。3,这个方法有返回值吗,什么类型的。 比如charAt方法,它有的功能是根据索引获取字符串中的字符。它的参数是int类型的索引值,返回值是char类型的字符。 String s = "abc" char c = s.charAt(1); // 获取1索引位置的字符,输出 b 联想到数组的索引,都是从0开始的。
char | charAt(int index)
返回指定索引处的 char 值。 |
int | indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。 |
| substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。 |
| substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。 |
| trim()
返回字符串的副本,忽略前导空白和尾部空白。 | 功能代码演示:[Java] 纯文本查看 复制代码 public class Test09 {
public static void main(String[] args) {
//1 charAt 根据索引返回该位置的字符
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'}
}
}
我们学习了String类,发现它的内容一旦确定是不能动态改变的String str = “abc”;,有同学说我可以给str 重新赋值啊!但是那就不是原来的str对象了,是一个新的字符串。这种特性是不利于存储动态的数据的。假如我们要保存一个字符串而且还要能随时修改它,怎么办呢?这里给大家介绍一个长度可变的字符序列 -- StringBuilder
StringBuilder类 构造方法: 刚才讲过,构造方法是用来创建对象的,我们可以灵活运用,比如StringBuilder sb = new StringBuilder("abc"); 这个方法可以把一个Strnig对象转化为StringBuilder对象。
StringBuilder类 方法:
| delete(int start, int end)
Removes the characters in a substring of this sequence. |
int | length()
Returns the length (character count). |
| reverse()
Causes this character sequence to be replaced by the reverse of the sequence |
| toString()
Returns a string representing the data in this sequence. |
[Java] 纯文本查看 复制代码 //StringBuilder 带缓冲区的字符串,长度可变。
//StringBuilder(String str)
StringBuilder sb = new StringBuilder("abc");
//append 拼接到末尾
sb.append("meng");
System.out.println(sb);//abcmeng
//delete 删除
sb.delete(1,3);//包含头,不包含尾 --》 subString --> Random
System.out.println(sb);//ameng
//sb.reverse 反转
sb.reverse();
System.out.println(sb);//gnema
//sb.toString() 把StringBuilder 转化为-》 String
好,下面我给大家出几道题来练习一下吧!
第一题:
1.键盘录入一个大字符串,再录入一个小字符串
2.统计小字符串在大字符串中出现的次数
3.代码运行打印格式:
请输入大字串:符:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
请输入小字符串:heima
控制台输出:小字符串heima,在大字符串中出现?次
第二题:
1.键盘录入一个字符串
2.将字符串中的所有大写字母变成小写字母
3.将该字符串变成字符数组
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成*
6.打印数组元素的内容
好,今天的学了很多方法,大家要好好练习啊!
|