9. 常用类
9.1 数学类Math
Math类的用法
代码示例:
/**
* 数学类Math类的用法
*/
@Test
public void test01(){
// 1、求指定数字的绝对值
int abs = Math.abs(-10);
System.out.println("abs = " + abs);
// 2、返回两个数的最大值、最小值
int max = Math.max(1, 10);
System.out.println("max = " + max);
int min = Math.min(1, 10);
System.out.println("min = " + min);
// 3、求指定数的n次幂
double pow = Math.pow(2, 3);
System.out.println("pow = " + pow);
// 4、求指定数的平方根
double sqrt = Math.sqrt(2);
System.out.println("sqrt = " + sqrt);
// 5、返回一个随机小数[0, 1)
double random = Math.random();
System.out.println("random = " + random);
// 6、返回一个比给定数小的最大整数(向下取整)
double floor = Math.floor(3.14);
System.out.println("floor = " + floor);
// 7、返回一个比给定数大的最小整数(向上取整)
double ceil = Math.ceil(3.14);
System.out.println("ceil = " + ceil);
// 8、得到圆周率的值
double pi = Math.PI;
System.out.println("pi = " + pi);
// 9、返回一个弧度的正弦值
double sin = Math.sin(Math.PI / 3);
System.out.println("sin = " + sin);
// 10、返回一个给定数的四舍五入值(将指定值加上0.5取整)
long round = Math.round(3.456);
System.out.println("round = " + round);
}
9.2 字符串处理类String与StringBuffer
String类的用法
特点:每次都会生成一个新的字符串,而原来的字符串会变成垃圾字符串,会让JVM
在合适的时候进行回收!
代码示例:
/**
* String类的用法
*/
@Test
public void test01() {
// 1、定义一个字符串
String info = "hello,world,welcome";
// 2、返回字符串的长度
int length = info.length();
System.out.println("length = " + length);
// 3、返回指定位置的字符
char charAt = info.charAt(1);
System.out.println("charAt = " + charAt);
// 4、返回指定字符第一次出现的下标
int indexOf = info.indexOf('o');
System.out.println("indexOf = " + indexOf);
// 5、返回指定字符最后一次出现的下标
int lastIndexOf = info.lastIndexOf('0');
System.out.println("lastIndexOf = " + lastIndexOf);
// 6、将指定字符串转换为大写
String toUpperCase = info.toUpperCase();
System.out.println("toUpperCase = " + toUpperCase);
// 7、将指定字符串转换为小写
String toLowerCase = info.toLowerCase();
System.out.println("toLowerCase = " + toLowerCase);
// 8、拆分字符串,指定的符号,是指按照什么符号进行拆分
String[] split = info.split(",");
for (String s : split) {
System.out.println(s);
}
// 9、字符串的替换
String replace = info.replace("o", "O");
System.out.println("replace = " + replace);
// 10、是否包含指定的字符串
boolean contains = info.contains("llo");
System.out.println("contains = " + contains);
// 11、是否以指定的字符串开头
boolean startsWith = info.startsWith("hel");
System.out.println("startsWith = " + startsWith);
// 12、是否以指定的字符串结束
boolean endsWith = info.endsWith("com");
System.out.println("endsWith = " + endsWith);
// 13、字符串截取
// 13.1 第一种:从指定位置开始截取到结束
String substring = info.substring(6);
System.out.println("substring = " + substring);
// 13.2 第二种:指定位置开始截取到指定位置
String substring1 = info.substring(6, 11);
System.out.println("substring1 = " + substring1);
// 14、去除字符串前后空格
String str = " to you! ";
info += str.trim();
System.out.println("info = " + info);
}
StringBuffer类用法
特点:每次都是修改原来的字符串,所以效率高。
代码示例:
/**
* StringBuffer类的用法
*/
@Test
public void test02(){
// 1、定义一个字符串
StringBuffer buffer = new StringBuffer();
StringBuilder builder = new StringBuilder();
// 2、添加内容
buffer.append("hello");
buffer.append(123);
buffer.append(true);
buffer.append(3.14);
buffer.append('中');
System.out.println("buffer = " + buffer);
// 3、向指定位置添加字符串
buffer.insert(8,"学");
System.out.println("buffer = " + buffer);
// 4、删除指定字符串
// 4.1 删除指定位置的字符
buffer.deleteCharAt(8);
System.out.println("buffer = " + buffer);
// 4.2 删除指定范围的字符串
buffer.delete(5,8);
System.out.println("buffer = " + buffer);
// 5、字符串的反转
buffer.reverse();
System.out.println("buffer = " + buffer);
}
1、
String
与StringBuffer
类的比较:
①String
是一个不变的常量值,每次操作都是生成一个新的字符串。
②StringBuffer
是每次都修改原字符串。2、
StringBuffer
与StringBuilder
的比较:
① 两者都是修改原字符串。
②StringBuffer
是一个线程安全的类,是线程同步,效率较低。
③StringBuilder
是一个线程异步类,效率较高。
④ 其他用法这两个类是一样的。