第三部分Java SE-Java应用
第1单元 Java API应用部分学习笔记
Part1 下载、查阅API
一、什么是API?
- 全称:应用编程接口-Application Programming Interface;
- 应用指的是:软件
- 编程接口:我们写的或第三方的类或接口(属性、方法)
- 通俗理解:类库、库函数,事先写好的,供其他人使用(例如:C语言库函数、MFC类库、Java类库、Python模块等);Java语言自带有很多API,官网下载API文档。
二、API的分类?
1.JDK带的
2.第三方的 Apache
3.我们公司提供的
三、微服务 ***
-
给我公开接口,我来调用。
-
1.微:小
-
2.服务:一个功能或一个系统
-
3.微服务:小型系统或功能
- 例如:短信验证码。教务系统中有发送短信验证码的需求,有两种方案:
- 1.我们在开发教务系统过程中同时开发短信的功能
- 2.我只开发教务系统的功能,我调用别人写好的发短信的系统;发短信的系统就是服务。他给我API和使用说明,我来调用。
- 我们调用别人的接口就行,接口就是指的API。
四、微服务的相关技术
技术1:Spring Boot
技术2:Spring Cloud
- 例如:我开发的教务系统包括:教务管理、学历验证、支付、短信验证码、学生户籍信息。每一个服务调用一个接口,每一个都是不一样的。
- 1.教务管理:开发人员根据需求开发
- 2.学历验证:调用【学信网】的接口
- 3.支付:调用【微信支付】的接口
- 4.短信验证码:调用【网易】的接口
- 5.学生户籍验证:调用【公安户籍管理】的接口
Part2 使用String类及其方法
一、面试题:
(1).列举几个常用的被final修饰的类:
- String、Math、System、Integer等
(2).提示:String不是关键字,不是Java的内置类型;String类在java.lang包中,不需导入即可使用,而是API中的一个类,属于引用类型。
- int String = 90;// 正确。
二、String类的使用
- 开发+面试
- String类在开发中使用频率极高,要熟练使用其常用的方法。使用时查看API文档里的说明。
1.任务1:将一个字符数组转成字符串输出
public String toStr(char[] x1) {
String str = new String(x1);
return str;
}
- 使用到的API:
- String(char[] value):分配一个新的 String ,以便它表示当前包含在字符数组参数中的字符序列。
public void toNewCharset(String x1) {
String str;
try {
str = new String(x1.getBytes("ISO-8859-1"), "utf-8");
System.out.println(str);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
- 使用到的API:
- getBytes(Charset charset):使用给定的charset将该String编码为字节序列,将结果存储到新的字节数组中。
- String(byte[] bytes, Charset charset):构造一个新的String由指定用指定的字节的数组解码charset 。
- 上述代码常常用来解决中文乱码的问题。
2.任务2:将一个字符串转成字符数组输出
- 使用API:
- char [] toCharArray():将此字符串转换为新的字符数组。
String name = "太原科技大学计算机系";
char n [] = name.toCharArray();
for (char x : n) {
System.out.println(x);
}
3.任务3:输入身份证号,判断最后一位是不是x
- 使用的API:
- endsWith(String str):测试此字符串是否以指定的后缀结尾。
public class Task3 {
public boolean checkID(String id) {
return id.endsWith("X");
}
public static void main(String[] args) {
Task3 task3 = new Task3();
Scanner scanner = new Scanner(System.in);
System.out.println("请您输入身份证号:");
String id = scanner.next();
if (task3.checkID(id)) {
System.out.println("该身份证号是X结尾。");
} else {
System.out.println("该身份证号不是X结尾。");
}
}
}
4.任务4:输入用户名和密码,密码必须是6位,输出登录是否成功
- (1)int length();//获得字符串长度;一个汉字长度就是1,一个汉字是一个字符。
- (2)boolean equals(String str);//区分大小写
- (3)boolean equalsIgnoreCase(String str);// 用在验证码上,不区分大小写
- (4)String trim();//返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。
public class Task4 {
public String login(String uname,String upsw) {
String tip = "";
if (upsw.length() != 6) {
System.out.println("密码必须是6位!");
tip = "密码长度不正确";
}
//.trim可以去掉字符串首位的空格
if (uname.trim().equalsIgnoreCase("scott") && upsw.equals("tiger1")) {
tip = "登录成功";
} else {
tip = "登录失败!";
}
return tip;
}
public static void main(String[] args) {
Task4 task4 = new Task4();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String uname = scanner.nextLine();
System.out.println("请输入密码:");
String upsw = scanner.nextLine();
System.out.println(task4.login(uname, upsw));
}
}
5.任务5:输入一个小数,判断该小数是否合法
- indexOf(); //返回指定字符第一次出现的字符串内的索引.当没有查到相关索引的时候,返回-1.
- lastIndexOf();//返回指定字符的最后一次出现的字符串中的索引。
public class Task5 {
public boolean check(String number) {
if (number.indexOf(".") == number.lastIndexOf(".")) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
Task5 task5 = new Task5();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个小数:");
String number = scanner.next();
System.out.println(task5.check(number));
}
}
6.任务6: 输入学号,输出该生入学年份
- substring(2,4); // 取的个数是 4 -2 = 2个
- substring(3); // 从索引3开始,取到结束
- substring(1,1);// “” 长度是0
- “” 与 null 是不同的
public String getYear(String sid) {
String str = sid.substring(0,4);//索引从0开始,取4个
//从索引5开始截取到结尾
//String newStr = sid.substring(5);
//String str2 = sid.substring(1,1);//""
//sid.substring(4,2); //错误
String result = "";
//result.equals("");//正确
String grade = null;
//grade.equals("");//空指针异常:程序执行起来才出现,原因:空对象调用方法。
return str;
}
7.任务7:输入教室占用状态,输出第3节是否有课
- split(String regex); //将字符串拆分。将字符串,拆分成字符串数组。。
- StringTokenizer // 用任何都可以分割
//把state用逗号切开赋值给字符串数组 //1,0,1,0,1;
String [] stateArray = state.split(",");
if (stateArray[2].equals("1")) {
return "有课";
} else {
return "没课";
}
8.任务8:将字符串中的ab换成123
- replace(char oldChar, char newChar):返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar。
- replaceAll(String regex, String replacement):用给定的替换替换与给定的 regular expression匹配的此字符串的每个子字符串。
String str = "Chinaabtitabcsab23ab";
System.out.println(str.replaceAll("ab", "123"));
9.任务9: 将身份号最后一位取出来
- charAt(int index):取出当前的索引号指出的字符。
String id = "142230199011092058";
System.out.println(id.charAt(17));
10.任务10:将身份证号中的生日换成*******************
System.out.println(id.substring(0,6) + "********" + id.substring(14));
//正则表达式
System.out.println(id.replaceAll("(\\d{6})\\d{8}(\\w{4})","$1********$2"));
11.判断字符中是否包含深圳
- 使用的API:contains()
String address = "广东省深圳市30220";
System.out.println(address.contains("深圳"));
12.其他方法:
- concat()
- startsWith()
- toLowerCase()
- toUpperCase()
- format()