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()