API:应用程序编程接口
简单理解:API就是别人已经写好的东西,我们不需要自己编写,直接使用即可。
例:
public static main(String[] ages){
Random r = new Random();
int number = r.nextInt(100);
}
Java API:指的就是JDK中提供的各种功能的Java类,我们只需要学习这些类如何使用即可。
API帮助文档:帮助开发人员更好的使用API和查询API的一个文档
字符串(Java不会字符串,开发环节凉一半)
学习内容:1.String,StringBuilder,StringJonier,StringBuffer,Pattern,Matcher可以掌握字符串的一些常见操作
2.实际开发中的一些常见案例
掌握分析问题,解决问题的能力
- 字符串相关的底层原理
- 处理开放中的一些复杂问题
String
概述:java.lang.String类代表字符串,Java程序中所有字符串文字都为此类对象。
注意点:字符串的内容不能发生改变,它的对象在创建后不能被更改。字符串拼接会产生一个新的字符串。
创建String对象的两种方式
字符串的比较
“==”号比基本数据类型比较的是数据值,引用数据类型比较的是地址值。
字符串里有两个方法:
·boolean equals(要比较的字符串)
·boolean equalsLgonreCase(要比较的字符串)
两个区别在于是否忽略大小写
小练习
·键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符出现的次数。
程序将会用到的两个方法:
·public char charAt(int index):根据索引返回字符
·public int length():返回此字符串的长度
代码如下:
import java.util.Random;
import java.util.Scanner;
public class text1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String str = sc.next();
int count1 = 0;
int count2 = 0;
int count3 = 0;
for (int i = 0; i < str.length(); i++) {
char c =str.charAt(i);
if(str.charAt(i) >= 'A' && str.charAt(i) <= 'Z'){
count1++;
}else if(str.charAt(i) >= 'a' && str.charAt(i) <= 'z'){
count2++;
}else{
count3++;
}
}
System.out.println("大写字母出现次数为:"+count1+"次");
System.out.println("小写字母出现次数为:"+count2+"次");
System.out.println("数字出现次数为:"+count3+"次");
}
}
例
·数字转换中文大写
代码如下:
import java.util.Scanner;
public class text1 {
public static void main(String[] args) {
//键盘录入一个金额
Scanner sc = new Scanner(System.in);
int money;
while (true) {
System.out.println("请录入一个金额");
money = sc.nextInt();
if (money >= 0 && money <= 9999999) {
break;
} else {
System.out.println("金额无效");
}
}
//定义一个变量表示钱的大写
String moneyStr = "";
//得到money里面的每一位数字,在转中文
while(true){
//从右往左获取数据,因为右侧是数据的个位
int ge = money % 10;
String capitalNumber = getCapitalNumber(ge);
//把转换后的大写拼接到moneyStr中
money = money / 10;
moneyStr = capitalNumber + moneyStr;
//如果数字上的每一位全部获取到了,那么money记录的就是0,此时循环结束
if(money == 0){
break;
}
}
//在前面补0,补齐7位
int count = 7 - moneyStr.length();
for (int i = 0; i < count; i++) {
moneyStr = "零" + moneyStr;
}
//定义一个数组表示单位
String[] arr = {"佰","拾","万","仟","佰","拾","元"};
//遍历moneyStr
//然后把arr的单位插入进去
String result = "";
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
//把大写字母和单位拼接到result当中
result = result + c + arr[i];
}
System.out.print(result);
}
//定义一个方法把数字变成大写的中文
public static String getCapitalNumber(int number){
//定义一个数组,让数字跟大写的中文产生一个对应关系
String[] arr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return arr[number];
}
}
小练习
·手机号屏蔽
可能要用到的方法:String substring(int beginLndex,int endLndx) 截取
注意点:包头不包尾,包左不包右,只有返回值才是截取的小串
import java.util.Scanner;
public class text1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个手机号");
String phonenumber = sc.next();
String start1 = phonenumber.substring(0,3);
String start2 = phonenumber.substring(7);
String result = start1 + "****" + start2;
System.out.println("屏蔽后的手机号为:" + result);
}
}
·敏感词替换
可能用到的方法:String replace(旧值,新值) 替换
import java.util.Scanner;
public class text1 {
public static void main(String[] args) {
String[] arr = {"tmd","cnm","sb","mgb","nmd"};
Scanner sc = new Scanner(System.in);
System.out.println("打字");
String speak = sc.next();
for (int i = 0; i < arr.length; i++) {
speak = speak.replace(arr[i],"***");
}
System.out.println(speak);
}
}
StringBuilder概述
StringBuilder可以看成是一个容器,创建之后里面的内容是可变的
·作用:提高字符串的操作效率
构造方法
空参构造:StringBuilder sb = new StringBuilder();
有参构造:StringBuilder sb = new StringBuilder(“abc”);
常用方法
链式编程:当我们在调用一个方法的时候,不需要用变量接受他的结果,可以继续调用其他方法。
例:int len = getString().substring(1).reliace(”A”,”Q”).length();
System.out.printin(len);
StringJoiner概述
·StringJoiner可看做是一个容器,创建之后里面的内容是可变的
·作用:提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用
构造方法