java中数组和字符串的相关知识点

本文总结了Java中数组和字符串的关键知识点,包括定义方式、整数与字符串的转换、长度获取、以及String、StringBuffer和StringBuilder的区别。此外,还介绍了数组与List之间的转换,强调了List转数组时的基本类型限制。
摘要由CSDN通过智能技术生成

Java中数组和字符串的相关知识点总结

1 数组的定义方式

第一种:int[] arr = new int[8]; // 创建长度为8的一维数组

第二种:int[] arr = {1, 2, 3, 4, 5}; // 创建一维数组直接给定值

2 字符串的定义方法

第一种:String s = “hello world”;

第二种:String s= new String(“hello world”);

第三种:String s = new String(array) 其中array为字符数组 public String(char[] value)分配一个新的String ,以便它表示当前包含在字符数组参数中的字符序列。 字符数组的内容被复制; 字符数组的后续修改不会影响新创建的字符串。

第四种:String s = new String(char[] value, offset, count)

参数

value - 作为字符源的数组

offset - 初始偏移量

count - 长度

3 整数和字符串的互转

  • int转string

    String str = Integer.toString(num);
    
  • String转int

    int i = Integer.parseInt(str);
    

4 获取数组和字符串长度

  • 获取数组的长度

    使用length获取

    int[] arr = new int[8];
    System.out.println(arr.length);// 获取数组的长度
    
  • 获取字符串长度

    使用length()获取

    String str = "Hello World!";
    System.out.println(str.length());// 获取字符串的长度
    

    具体原因参照Java如何获取数组和字符串的长度length还是length

5 String、StringBuffer和StringBuilder

​ String类是不可变的,不能对其进行删除,添加操作,即不能进行更改,在有的地方就很鸡肋。

​ StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。

​ StringBuilder类也代表可变字符串对象。实际上,StringBuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。不同的是:StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。

具体原因参照博客String、StringBuffer和StringBuilder的区别

6 数组和List的互转

  • List转数组

    调用ArrayList的toArray方法
    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(1);
    list.add(1);
    int[] arr1 = new int[3];
    Integer[] integers = list.toArray(new Integer[3]);  // 泛型类型只能是对象类型,不能是基本类型
    
  • 数组转List

    String[] arr = new String[] {"1", "2"};
    List list = Arrays.asList(arr);
    

    注意:采用asList方法将数组转换成list的方法所返回的集合不能进行add和remove。查看源码即可知道它是java.util.arrays包下的,是Arrays类自己定义的一个内部类,这个内部类没有实现add、remove方法,而是直接使用父类ArrayList里面的方法。而父类这两方法内容就是抛出异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值