一、基本类型、包装类型和String之间的互相转换
- 直接上代码(有问题的地方希望大家能指出来,谢谢啦)
/*
* 基本类型转包装类型
*/
// 1、构造方法
int m = 12;
Integer in = new Integer(m);
// 2、自动装箱
Integer it = m;
// 3、静态valueOf
Integer it1 = Integer.valueOf(m);
/*
* 包装类型转基本类型
*/
// 1、自动拆箱
Integer it2 = new Integer(5);
int h = it2;
// 2、xxxValue
h = it2.intValue();
/*
* 字符串转包装类型
*/
// 1、包装类的构造方法
String str = "123";
Integer er = new Integer(str);
System.out.println(er);
// 2、包装类的valueOf
Integer er1 = Integer.valueOf(str);
/*
* 包装类型转字符串
*/
// 1、String类中的valueOf
String str1 = "123";
Integer er2 = Integer.valueOf(str1);
String str2 = String.valueOf(er2);
// 2、包装类中的toString方法
String str3 = er2.toString();
/*
* 字符串转基本类型
*/
// 借助对于的包装类中的parseXxx
int p = Integer.parseInt(str3);
/*
* 基本类型转字符串
*/
// 1、基本类型+" "
String s = 1234+"abc";
// 2、静态valueOf
int a = 1234;
String s1 = String.valueOf(a);
// 3、对于包装类中静态toString
int b = a;
String s2 = Integer.toString(b);
二、字符串缓冲区
由于字符串是常量不能改变,因此在程序中经常需要对字符串进行操作,这时如果直接使用String类中的部分方法操作,其实是在内存中不断的生成新的字符串。其中就会存在部分字符串没有使用价值。
在JDK中提供的字符串缓冲区,它主要目的是对字符串进行CRUD操作。
缓冲区:临时存储数据的空间。然后可以在临时区域中对数据进行更改操作。
字符串缓冲区:
- StringBuffer:多线程操作安全,但是相对效率较低
- StringBuilder:多线程(并发)不安全,但是效率高,针对单线程的程序优先使用。
2、StringBuffer
2.1、StringBuffer介绍
StringBuffer:它是final修饰,不能被继承。
/*
* 创建字符串缓冲区对象
*/
private static void demo1() {
// 创建字符串缓冲区对象,其中没有任何的字符数据
StringBuffer sb = new StringBuffer();
sb.append("abcdefg1234");
// length() : 容器中字符个数
int len = sb.length();
System.out.println(len);
// capacity() : 当前容器能够存放的最大值
int capacity = sb.capacity();
System.out.println(capacity);
}
2.2、添加方法
/*
* 字符串缓冲区中的添加方法
*/
private static void demo2() {
StringBuffer sb = new StringBuffer();
// 调用append是给缓冲区的后面添加数据
sb.append('A');
sb.append(12);
sb.append(3.14);
sb.append("neu");
// 在缓冲区指定的位置上添加数据
sb.insert(3, "BB");
// 字符串缓冲区操作完之后,一般都需要将数据统一转成一个字符串
String s = sb.toString();
System.out.println(s);
}
2.3、删除和修改
/*
* 删除和修改
*/
private static void demo3() {
StringBuffer sb = new StringBuffer("neusoft");
// 删除指定位置上的字符
sb.deleteCharAt(1);
System.out.println(sb.toString());
// 从指定start的位置删除到end位置
sb.delete(1, 3);
System.out.println(sb.toString());
// 修改指定位置上的字符数据
sb.setCharAt(0, 'A');
System.out.println(sb.toString());
// 反转字符串
sb.reverse();
System.out.println(sb.toString());
}
2.4、替换
// 替换
private static void demo4() {
StringBuffer sb = new StringBuffer(" neu so ft ");
//sb.replace(0 , 2, "NEU");
System.out.println(sb.toString());
sb.trimToSize();
System.out.println(sb.toString());
String s = " neu soft ";
// trim是String中的一个方法,用于去除字符串收尾的空白
// 会生成一个新的串
String s2 = s.trim();
System.out.println(s);
System.out.println(s2);
}