一、String类
1.String类:位于java.lang包中,被final修饰,不能被继承,既没有子类。
2.获取字符串的两种方法:
(1)String s1 =“hello”
//注意:用“”直接获取字符串的形式,直接在串池中查看是否有需要的字符串对象,如果有直接使用,如果没有,在串池中产生一个对象。所以这种获取字符串的方式,产生对象的个数为0~1个
(2)String s2 = new String(“world”);
注意:使用new String("world");获取字符串的方式首
先会在堆空间中产生一个字符串对象(不管堆空间中是否存包 含 world内容的字符串对象);
同时 会查看 串池中是否有 此字符串对象,存在,则串池中不需要创建,
如果没有,则 还需要在串池中产生一个 此字符串对象。
所以利用这种获取 字符串的方式,产生对象的个数:1~2个
3.String类中常用方法
(1) char charAt(int index):根据下标获取字符串对应字符。
注意:String底层 本质为char类型的数组 (char[]value),
所以字符串它的下标范围等价于数组下标范围:0~ 字符串长度-1。如果指向的下标超出下标范围,则编译通过,
运行报错,错误信息为:java.lang.StringIndexOutOfBoundsException(字符串下标越界)
(2) int length():获取字符串长度
注意:字符串中获取长度是方法:字符串引用名.length() 数组中获取长度:数组名.length
实际开发应用:字符串的遍历。 String str = "hello";
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
//利用 变量 对 字符串中字符进行操作 .... }
(3) boolean contains(String str) :判断 在当前字符串中是否包含str字符串,包含-true;不包含-false。
开发实际应用:做查询时,可以作为过滤条件:
String name = "张飞飞";
// 判断名字中是否包含 "飞飞"
if(name.contains("飞飞")){ // ... }
boolean equalsIgnoreCase(String str):比较两个字符内容是否相同,忽略大小写,相同-true;不同-false.
String str = "JavaSE";
System.out.println(str.equals("javase"));// false
System.out.println(str.equalsIgnoreCase("jav ase")); //true
(4) char[] toCharArray() :将当前字符串转换为char数组。[了解]
(5) boolean equals(Object obj):判断两个字符串内容是否相同,String类中完成了对 equals方法的覆盖,直接调用即可。
注意:开发时比较字符串的内容,严格使用equals方法比较。
(6) String toUpperCase():小写 转换为 大写 [了解]
String toLowerCase():大写 转换为 小写
(7) int indexOf(String str):获取str在当前字符串中第一次出现的首字符的下标,如果没有出现则返回-1.
(8) int indexOf(String str,int fromIndex):从指定位置开始查找str是否在当前字符串中存在,存在则指定下标后面第一次出现的首字符的下标,没有出现,返回-1. 【了解】
(9) int lastIndexOf(String str):获取 str 在当前字符串中最后一次出现的首字母的下标,如果没有出现则返回-1. 【了解】
(10) boolean endsWith(String str):判断当前字符串是否 以 str结尾。
三、BigDecimal
1.位置:java.math包中
2.作用:精准表示,计算浮点数
4.常用的功能方法:
参数说明:
第一个参数bd1,代表除数
第二个参数scal,代表保留到小数点后第几位
第三个参数mode,代表 小数 取舍模式,通常使用四舍五入
BigDecimal.ROUND_HA