常用API应用程序接口
包
管理不同程序,类似文件夹,建包有利于程序的管理和维护
package cn.ptz.javabean;
public class Student{
}
1.同一包下的程序,可以直接访问
例如要创建新的对象时,直接 类名 对象名 = new 构造器();
2.访问其他包下的程序,必须导包才可以访问
导包 import 包名.类名
直接用程序的时候,IDEA可以自动导入
3.调用Java提供的程序,也要导包
lang包不用导
4.访问多个其他包下的程序,且程序同名,默认只能导入一个程序,另一个程序须带包名、类名访问
包名.类名 对象名 = new 包名.类名();
String字符串处理
package cn.ptz.String;
import java.sql.SQLOutput;
public class StringDemo {
public static void main(String[] args) {
// 得到字符串对象的方法
// 1.直接得到字符串对象,封装字符串数据
String name = "ygpt";
System.out.println(name);
// 2.new String创造字符串对象,调用构造器初始化字符串
String rs1 = new String();
String rs2 = new String("ygpt");
char[] chars = {'y','g','p','t'};
String rs3 = new String(chars);
byte[] bytes = {97,98,99}; // abc
String rs4 = new String(bytes);
// 处理字符串的常用方法
String s = "ygpt";
System.out.println(s.length()); // 获取字符串长度
char c = s.charAt(2); // 提取字符串中某个索引位置处的字符
System.out.println(c);
// 字符串的遍历
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
System.out.println(ch);
}
// 把字符串转换成字符数组再遍历
char[] chars1 = s.toCharArray();
for (int i = 0; i < chars1.length; i++) {
System.out.println(chars1[i]);
}
// 判断字符内容,一样返回true
String ss1 = new String("ygptptz");
String ss2 = new String("ygptptz");
System.out.println(ss1 == ss2); // false 比较的是ss1和ss2储存的地址
System.out.println(ss1.equals(ss2)); // true 比较的是内容
// 忽略大小写笔记字符串内容 通常用于验证码
String c1 = "YgptPtz";
String c2 = "ygptptz";
System.out.println(c1.equals(c2)); // false
System.out.println(c1.equalsIgnoreCase(c2)); // true 忽略大小写比较
// 截取字符串内容
String s3 = "ygpt葡萄籽";
String rs =s3.substring(0,4); // ygpt 索引包前不包后
System.out.println(rs);
// 从当前索引位置截取到末尾
String res = s3.substring(4);
System.out.println(res); // 葡萄籽
// 把字符串中的内容替换成新内容,并返回新的字符串对象
String info = "只能说葡萄不能说葡萄籽";
String res1 = info.replace("葡萄籽","**");
System.out.println(res1);
// 判断字符串中是否包含某关键字,包含则返回true
System.out.println(info.contains("葡萄籽")); // 精准匹配,区分大小写
// 判断字符串是否以某个字符串开头 可以用来判断姓氏
String info2 = "葡萄籽来自葡萄";
System.out.println(info2.startsWith("葡萄"));
System.out.println(info2.startsWith("葡萄皮"));
// 分割字符串,按指定内容分割成多个字符串,放到一个字符串数组中返回
String info3 = "葡萄,葡萄籽,葡萄皮";
String[] putaos = info3.split(",");
for (int i = 0; i < name.length(); i++) {
System.out.println(putaos[i]);
}
}
}
注意事项
1.String对象的内容不可改变,被称为不可变字符串对象
字符串运算结果直接放在堆内存,不放在字符串常量池
2.只要以"..."方式写出的字符串对象(即使是在new String()括号内),会存储到堆内存的字符串常量池,且相同内容的字符串只存储一份[节约内存];但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。
Sring s1 = new String("abc");
String s2 = "abc";
第一行:创建了两个对象,字符串常量池中的“abc”对象和new时堆内存中创建一个字符串对象
第二行:创建了0个对象,如果没有第一行,则是创建了一个对象
ArrayList集合
用于装数据,与数组相似,优越处在于:大小可变[数组一旦定义并启动,长度就确定了]
集合都是支持泛型的,集合和泛型都不支持基本数据类型,只能支持引用数据类型
集合容器中存储的是每个对象在堆内存中的地址
package cn.ptz.ArrayList;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
// 增删改查
// 创建
ArrayList list = new ArrayList();
// 增加数据 可以添加任何类型
list.add("ygpt");
list.add(123);
list.add("葡萄籽");
System.out.println(list);
//约束添加数据类型
ArrayList<String> List = new ArrayList<>();
// List.add(12.3); // 报错
List.add("PTZ");
// 向某索引为添加数据
list.add(1,321);
System.out.println(list);
// 获取某索引处值
String rs = List.get(0);
System.out.println(rs);
// 获取集合大小
System.out.println(list.size());
// 根据索引,删除集合某处值,并返回被删除值
System.out.println(list.remove(2));
System.out.println(list);
// 删除指定值,删除成功返回true,失败返回false
// 并且默认删除的是 第一次出现的 指定数据[比如集合中有两个相同数据,删除第一个]
System.out.println(list.remove("ygpt"));
System.out.println(list);
// 修改某索引处数据,返回修改前的值
System.out.println(list.set(0, "PTZ"));
System.out.println(list);
}
}
从集合遍历元素,并筛选元素删除:
方1:从0开始遍历,每次删除一个数据后,索引-1
方2:从List.size() - 1开始倒着遍历