String常用方法
public class Test {
public static void main(String[] args) {
String content = " 张三是个 好人Oya";
//1.length方法返回字符串的长度
System.out.println(content.length());
//2.char(int index)At返回某个位置的字符
System.out.println(content.charAt(2));
//3.contains(String str)判断是否包含某个字符串
System.out.println(content.contains("好人"));
//4.toCharArray()方法返回字符串对应的数组
System.out.println(Arrays.toString(content.toCharArray()));//toString将数组变成字符串
//5.indexOf()返回字符串首次出现的位置
System.out.println(content.indexOf("三"));
//6.lastIndexOf()返回字符串最后一次出现的位置
System.out.println(content.lastIndexOf("个"));
//7.trim()去掉字符串前后的空格在,中间的不会去掉
System.out.println(content.trim());
//8.toUpperCase()将小写西转成大学
System.out.println(content.toUpperCase());
//9.endWith()判断字符串是否以str结尾
System.out.println(content.endsWith("a"));
//10.replace()将旧字符转换成新字符
System.out.println(content.replace("张三","李四"));
//11.split()根据str做拆分
String[] arr = content.split("[ ,]");//以空格来拆分,之后存入arr数组里,在【】里写表示空格或者,
System.out.println(arr.length);//输出数组的长度,即被空格拆分成了几部分
for (String string : arr){//遍历数组里的元素
System.out.println(string);
}
//equals比较是否相等,compareTo比较大小
String n1 = "hello";
String n2 = "Hello";
System.out.println(n1.equals(n2));//返回false
System.out.println(n1.equalsIgnoreCase(n2));//返回true,忽略大小写的比较
String n3 = "abc";
String n4 = "xyz";
String n5 = "abcdef";
System.out.println(n3.compareTo(n4));//输出-28,为97-120
System.out.println(n3.compareTo(n5));//输出-3,用n3的长度减去n5的长度
/*
返回n3-n4的值,先第一个字符相减,如果相等再比第二个字符
否则直接输出值,如果其中一个包另一个数,就是长度相减
*/
}
}
可变字符串
StringBuffer和StringBuilder
- StringBuffer和StringBuilder都是可变长字符串,前者运行效率慢,但线程安全,后者运行效率相对快,线程不安全,单线程可以用StringBuilder
两者与String的区别
StringBuffer和StringBuilder的四种方法
public class Test {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
//1.append();追加
sb.append("张三是好人");//给sb赋上字符串
System.out.println(sb.toString());//将sb输出
sb.append("但你不是");//在之前的基础上新加字符串
System.out.println(sb.toString());
//2.insert()添加,插入
sb.insert(5,",");//在索引5的位置添加逗号
System.out.println(sb.toString());
//3.replace()替换
sb.replace(0,2,"李四");//将索引0到1的位置替换成李四(含头不含尾)
System.out.println(sb.toString());
//delete()删除
sb.delete(6,10);
System.out.println(sb.toString());
//清空
sb.delete(0,sb.length());
}
}
BigDecimal类
- 在精度非常高时使用,该类位于java.math包当中,该类可以精确计算浮点数
- BigDecimal.ROUND_HALF_UP表示四舍五入
public class Test {
public static void main(String[] args) {
double n1 = 1.0;//double采用近似值的存储方式
double n2 = 0.9;
System.out.println(n1-n2);//输出0.099999...
//BigDecimal是精确存储
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//subtract方法为减法运算,加法为add
BigDecimal bd3 = bd1.subtract(bd2);
System.out.println(bd3.toString());
//乘法multiply
BigDecimal bd4 = bd1.multiply(bd2);
System.out.println(bd4);
//除法divide
BigDecimal bd5 = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
//除不尽时要写上保留几位小数,采用什么方法。上面是保留2位小数,采用四舍五入
System.out.println(bd5);
}
}