String转换_Math_StringBuilder_包装类_Integer

String的转换相关方法2

字符串转换成其他的数据类型:

1、getByte(String s) 字符串转成字节数组 存在一个编码的过程

2、toCharArray(String s) 字符串转成字符数组

字符串转成其他形式的字符串

1、toUpperCase(String s) 将字符串转成大写的形式

2、toLowerCase(String s) 将字符串转成小写的形式

其他类型向字符串转换的方法 就是valueof方法

1、基本数据类型的直接可以使用该方法转换 例如:123 "123" 12.34 "12.34"

2、引用数据类型:可以直接调用toString方法转换

private static void test3_其他类型向字符串转换() {
		int a = 123;
		String str = String.valueOf(a);
		System.out.println(str);
		str = String.valueOf(1.0);
		System.out.println(str);
	}

	private static void test2_字符串转成其他字符串的形式() {
		String s = "abcA";
		s = s.toUpperCase();
		System.out.println(s);//全部转成大写
		s = s.toLowerCase();
		System.out.println(s);
	}

	private static void test1_字符串转换成其他类型() {
		String s = "123";
		byte[] bArr = s.getBytes();
		//System.out.println(bArr.toString());//[B@7852e922
		System.out.println(bArr[1]);//编码,看得懂->看不懂
		char[] cArr = s.toCharArray();
		System.out.println(cArr[0]); 
	}

String的其他常用方法

Trim[ ] 将调用字符串中的两侧空格删除,包含了转义字符

Replace(String olderStr,String newStr):将调用者中存在的字符串替换为新的字符串

Math

概述:1、就是封装了数学相关的功能;2、两个常量和很多方法;3、数学相关的内容在java只用到最简单的部分

相关的两个常量:E 自然对数的底数;PI圆周率

相关的常用方法:Math.XXX;

abs 取绝对值

cbrt 立方根 8--2

ceil 向上取整

floor 向下取整

round 四舍五入取整

min 两个数据的最小值

max 两个数据的最大值

pow 计算x的y次幂pow(2,3) = 8;

random 取随机数

System

概述:1、系统相关信息的类,可以通过这个类获取系统信息;2、封装了一些常量,都是与io流相关;3、封装了两个常用的方法 currentTimeMillis()、 gc()

常量:

System.in:系统的标准输入流 父类:inputStream,默认获取键盘输入的内容,可以使用多种方式对这个流进行加强Scanner ,转换流 缓冲流

System.out:系统的标准输出流 父类:PrintStream,可以直接打印我们的数据信息作为字符串,里面提供了print和println相关的很多方法

System.err :系统的标准错误流 父类:,可以将错误信息给输出,在eclipse中以红色的字体颜色输出,错误输出流是用的另外一个线程执行

常用的方法:

gc():垃圾回收的相关方法

作用:执行这个方法可以提高垃圾回收的效率

解释:不是每次调用这个gc方法就会回收垃圾只是提高回收的效率

gc方法不用经常调用,也会影响执行的效率

currentTimeMillis()

作用:获取当前系统时间

解释:1970年1月1日0时0分0秒到当前的时间

应用场景:可以测试当前代码的执行效率

StringBuilder(字符生成器,字符缓冲区)

概述:是一个可变的字符序列;

字符序列:就是字符排成一排 例如:String,字符数组,StringBuilder都是字符序列

可变的原因:

1、StringBuilder中的底层字符数组可以指向其他的数组引用。

2、在该类中提供了很多公开的帮助修改或者其他操作的方法我们可以使用这些方法来改变底层的字符数组。例如:delete,replace,append

构造方法

罗列:

1、StringBuilder() 不带参数的构造,可以生成一个默认大小的容器,没有字符内容,这个默认大小为16,如果空间用完可以申请更大的容量的空间,当前容量*2+2

2、StringBuilder(int capacity) 生成一个指定大小的容器用来存放字符序列。根据参数决定当前容器的大小

3、StringBuilder(String s) 生成一个自带内容的字符序列。这个容器的长度就是字符串长度+16

int capacity() 获取当前字符缓冲区的容量大小,向其中添加元素不会改变容量大小

常用的成员方法

添加相关的方法:

append(任意的数据类型);在本串上修改,返回值是原串,可以使用链式调用来提高开发效率

1、先将其他的数据类型转成字符串的形式再去添加;

2、添加数据到缓冲区末尾的位置

3、转换参数类型 使用的方法就是String.valueof

insert(插入的位置的索引,任意的数据类型)方法也是添加的方法

指定位置去插入相应的数据

注意事项:插入位置的索引只能是0开始到length-1这个范围之内,中间不能有空隙,如果往中间插入数据,其余的会自动后移

sb1.insert(0, 'z');
sb1.insert(1, 'z');
sb1.insert(2, 'z');
sb1.insert(3, 'z');
sb1.insert(2, 'q');

输出结果:

删除相关的方法

deleteCharAt(int index)删除指定位置的字符

delete(int start,int end)删除指定范围的字符序列

start包含,end不包含

替换和反转相关方法:

Replace(int start,int end,String str)指定范围替换内容,包含开头,不包含结尾

Reverse() 直接反转字符序列

StringBuilder和StringBuffer的区别

相同点:都是可变的字符序列,底层都是可以去操作字符数组完成变换,字符数组都可以去申请更大的缓冲区存储字符序列,都提供了相关的方法来操作底层数组,还有相同的构造方法

版本的不同:

1、StringBuffer jdk1.0

2、StringBuilder jdk1.5

线程安全问题:

1、StringBuffer是一个线程安全的字符序列,同步

2、StringBuilder线程不安全,不同步

执行效率:

1、StringBuffer虽然安全但是执行效率低

2、StringBuilder不安全但是执行效率高

String和StringBuilder在在作为实参时的区别

总结:String类型作为实参不会去修改引用,也无法修改其他空间中的局部变量,不会对其他的引用造成任何的影响。

StringBuilder作为实参有两种情况

总结:当Stringbuilder作为实参时 我们又在调用方法中创建一个新的对象。刚开始两个引用都指向了相同的对象,创建之后新的对象引用赋值给了s所以出现了两个不同的内存空间,也不会去影响彼此。

情况二:

就是在调用的方法中不去创建对象 直接对当前的引用进行操作,操作完成之后,主方法中的引用也会发生变化。就对当前引用造成影响。

基本数据类型的包装类

基本数据类型:四类八种

弊端:

1、只能表示一个数据,过于单一

2、超脱于Object继承关系之外,不好管理。

解决方法:可以将基本数据类型作为字段放在对象中,也能操作数据,便于继承体系的管理

都是将基本数据类型首字母大写,除了int和char

byte        Byte

short      Short

int          Integer

long       Long

boolean Boolean

char       Charact

float       Float

double   Double

包装类都差不多,所以不用一一列举,以最常用的Integer举例

Integer

Integer构造方法

Integer(int i)

integer(String s)

//int-->integer
Integer i = new Integer(10);
System.out.println(i);
//string-->integer
Integer i1 = new Integer("666");
System.out.println(i1);

Integer中的成员方法

非静态的方法:

xxvalue(传递各种数据类型) 可以返回integer类型的值。

    private static void test1_非静态方法() {
		Integer i = new Integer(10);
		int num = i.intValue();
		double d = i.doubleValue();
		System.out.println(num);
		System.out.println(d);
	}

静态方法:

数字转字符串相关的方法

toHexString(int i)16进制

toBinaryString(int i)2进制

toOctalString(int i)8进制

String Integer.toString(int i) 默认转换十进制

String Integer.toSrring(int i1,int i2) 指定进制转换;i1指定数字,i2指定进制

字符串转数字相关的方法

Integer.parseInt(String s)

Integer.parseInt(String s, int i) 可以指定进制转换

自动装箱拆箱

装箱:将int类型的数据作为参数 传递给包装类的构造方法的形参。

拆箱:获取包装类中字段的值xxxvalue方法来获取

自动装箱:直接可以将基本数据类型的值赋值给包装类;例如:  integer i = 666;

自动拆箱:直接可以在我们包装类的基础上进行对基本数据类型的操作;例如: i =i/2;

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值