API:应用程序编程接口
别人写好一些类,可以直接拿去调用解决问题
已学例子
Scanner 键盘录入
Random 随机数
API帮助文档
使用流程
索引处搜索所需类
看包
若是Java.lang包,不需要编写导包代码(import);若不是则都需要编写导包代码
看介绍
搞清楚类的作用
看构造方法
创造该类对象
看这个类的成员方法
Scanner键盘录入
String next():遇到空格,或tab就不再录入
String nextLine():以回车作为结束标记
当nextLine之前调用过nextInt(),nextDoubLe(), nextFloat(),会接收到它们工作完剩余的回车导致直接结束接收工作
String类
特点
- 所以双引号字符串,都是String类的对象
- 字符串一旦被创建就不可更改,内容不可改变,只能用新的对象(字符串)替换
- Sting字符串可以被共享
- 字符串常量值 :使用双引号创建对象时,会查看常量值中是否存在该数据
- 若存在:复用,使用同一个地址
- 不存在:创建
常见构造方法
Stiring() 创建空白字符串
String(char[ ] chs):根据传入的字符数组,创建字符串对象
char[] chs ={"a","b","c"};
String s1 = new String(chs); //s1中即存储abc
String(Sting original):根据传入字符串,创建字符串对象
String s2 = new String("abc");//若字符串常量值中存在,则将其字节码拷贝到新地址
字符串对象的两种创建方式
public class StringTest1 {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "a"+ "b"+ "c";
System. out . println(s1 == s2);
}
}
输出结果为ture,java中的常量优化机制使s2在字节码中就是"abc"
字符串比较
s1.equals(s2);//用于比较s1和s2的内容
s1.equalsIgnoreCase(s2);//比较s1和s2且不考虑大小写
字符串的遍历
char[] chars=s1.toCharArray();//将字符串转化为字符数组
for(int i=0;i<cahrs.length;i++){
System.out.println(cahrs[i]);
}
for(int i=0;i<s.length();i++){
char c=s.charAt(i); //将字符串转化为数组且根据索引i输出对应字符
System.out.println(c)
} //该循环实现了对字符串的遍历输出
字符串截取
public String substring(int beginIndex) //根据传入的索引开始做截取,截取到字符串的末尾
public String substring(int beginIndex, int endIndex) //分别以传入索引做开头和结尾截取字符串(包含头不包含尾)
字符串替换
public String repLace (CharSequence target, CharSequence repLacement);
s2=s1.replace("***","...");//将s1中的***替换为...
字符串切割
public String[] split(Sting regex);//根据传入的字符串作为规则,切割当前字符串
String s="192,168,1,1"
String[] sArr = s.split(",");//sArr数组中存储了192 168 1 1
//使用"."+"等时需使用//做标注-->"//."
StringBuilder 类引入
作用:提高字符串的操作效率
特点
- 可变的字符序列(不断扩充)
- 字符串缓冲区,可以储存任意数据类型,进入容器后全部变成字符串
构造方法
public StringBuilder();
//创建一个空的字符串缓冲区(容器)
public StringBuilder(String str);
//创建一个字符串缓冲区, 并初始化好指定的参数内容
常用成员方法
public StringBuilder append (任意类型);//添加数据,并返回对象本身(可以用同类型变量接收返回值)
sb. append("红色") . append("绿色") . append("蓝色") . append("a") . append("b") .append("c");| //链式编程:调用的方法,返回的结果是对象,就可以继续向下调用方法
public StringBuilder reverse();//反转容器中的内容并将其返回
public int length();//返回长度(字符出现的个数)
public String toString();//通过toString()就可以实现把StringBuilder转换为String(返回字符串)
案例
需求:键盘接受一个字符串,程序判断出该字符串是否是对称字符串(回文字符中),并在控制台打印是或不是
对称字符串: 123321. 111
非对称字符串: 123123
String —> StringBuilder
String s = “abc”;
StringBuilder sb = new StringBuilder(s);
StringBuilder —> String
String s = sb.toString();public static void main(String[] args) { Scanner sc = new Scanner(System.in); System. out . println("请输入- - 个对称字符串: "); String content = sc.nextLine(); //将String转换为StringBuilder,为了调用内部反转的方法 StringBuilder sb = new StringBuilder (content) ; sb. reverse(); //判断反转后的内容,和原数据是否相同 // content : String类型 // sb : StringBuilder类型 if (content . equals(sb. toString()) { System. out . printLn("是对称字符串"); } else { System. out. printLn("不是对称字符串"); } } }