关于java中的char、String|| 集合、数组

本文详细介绍了Java中char和int之间的自动与强制转换,以及char与String的常用操作,包括equals、charAt、substring、replace等。同时,文章还讨论了String的不变性以及在不同编码下占用的字节数。此外,还涵盖了集合和数组的相关方法,如add、remove、sort及转换技巧。
摘要由CSDN通过智能技术生成

一定要掌握char和int的转换

(86条消息) JAVA中int和char类型的相互转化int强制转换char怎么转的是攸宁啊的博客-CSDN博客

1.int类型长度为4个字节,char类型长度为2个字节

所以char→int为自动转换int→char为强制转换(因为可能有数据丢失风险)

2.Java中设计char的运算操作,都会先将这些值转换为int,再对int类型进行操作

综上(针对数字) char-> int char-'0'

int -> char char(int+'0')

例如 int a =9; 转换成char也想是9, a+'0'此时是int的57 再char强转一下;

char a = ‘9’; 转成int也想是9 , a-'0' 此时就是int的9


char和String的常用方法

判断字符串相等要用equals方法

1.charAt()方法 toCharArray()

2.char转成String

toString()、String.valueOf、(String)强制转换的区别_string.valueof tostring (string)-CSDN博客 类型转换


char转成String
// char array to string
        char[] ca = { 'a', 'b', 'c' };
        str = String.valueOf(ca);
        // recommended way
        str = new String(ca);
 

3.substring 含头不含尾 就你特殊 第二个s是小写

  • substring(int beginIndex)

  • substring(int beginIndex, int endIndex)

  • substr(startIndex,lenth): 第二个参数是截取字符串的长度(从起始点截取某个长度的字符串); 这不是java的方法

4.s.charAt()的错误用法

犯大错 字符串不可变

所以如果字符串要改变 必须转成char数组 数组再转成String ;

5. replace replace(CharSequence target, CharSequence replacement)

6. trim

7. split String[] split(String regex)

8. boolean startsWith(String prefix)

9. StringBuilder拼接完 转成字符串 :sb.toString()

10.boolean contains(CharSequence s)

11. boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结尾

12. int indexOf(String str)

13. String toLowerCase()

14. 唯一的静态方法 static String valueOf(boolean b)


char a = ' '; // char类型的初始化 要有个空格

或者也可以

方法(){

char a;

a= 'a';

}

局部变量必须初始化没错 但是可以像上面 先声明再赋值;


对于 String a = new String("a");问题 只需要掌握这道题就够了

new String(“a”) + new String(“b”) 会创建几个对象? 答案是4/5/6 解答在JVM笔记


在java中,char占用2个字节。Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。原因:Java编译器默认使用Unicode编码,因此2字节可以表示所有字符

String采用一种更灵活的方式进行存储。在String中,一个英文字符占1个字节,而中文字符根据编码的不同所占字节数也不同。在UTF-8编码下,一个中文字符占3个字节;而使用GBK编码时一个中文字符占2个字节。


集合和数组

Collection集合的常用方法

add() 添加元素 size() 获取集合中元素的个数 addAll() 把一个集合的元素添加到一个新的集合 isEmpty() 判断当前集合是否为空,判断的是集合中是否有元素 contains() 判断是否包含 containskey是map的 containsAll() 判断集合coll1中是否包含coll集合中的所有元素 remove() 删除指定元素

remove的参数可以是Object o 或者是下标

List 删除元素的逻辑是将目标元素之后的元素往前移一个索引位置,最后一个元素置为 null,同时 size - 1;所以按照从大往小的方向删除不容易出错

removeAll() 删除当前集合中包含另一个集合中的所有元素 clear() 清空集合中的元素

注意! get是List的方法 Set没有 add是Collection的

Arrays常用方法(注意都是静态方法

2.Arrays.sort()方法 O(n)

[3.Arrays.equals()

[4.Arrays.binarySearch()

[5.Arrays.copyOf()]

Arrays.copyOf(dataType[] srcArray,int length);
Arrays.copyOfRange(dataType[] srcArray,int startIndex,int endIndex)  左闭右开
  • srcArray 表示原数组。

  • startIndex 表示开始复制的起始索引,目标数组中将包含起始索引对应的元素,另外,startIndex 必须在 0 到 srcArray.length 之间。

  • endIndex 表示终止索引,目标数组中将不包含终止索引对应的元素,endIndex 必须大于等于 startIndex,可以大于 srcArray.length,如果大于 srcArray.length,则目标数组中使用默认值填充。

集合转数组 数组转集合

集合和数组的正确转换方式(可能有你不知道的坑哦)_集合转数组的方法_OYMN的博客-CSDN博客

List集合与E[]数组互转方法集锦list转[]孔子-说的博客-CSDN博客

集合转数组 : toArray(T[] array) 但是int是不能做泛型的 

所以:

一、集合转数组 

1.  List转为原始Array

public int[] convertAsPrimitiveArrayWithStream(List<Integer> list) {
   return list.stream().mapToInt(i->i).toArray();
}

2. List转为 引用类型的array

List<String> strList = new ArrayList<>();
//new String[0]指定了返回数组的类型,0节约了空间
String[] strArray = strList.toArray(new String[0]); 

二、数组转集合

String[] s = new String[]{"hello", "world", "haha"};
List<String> strList = new ArrayList<>(Arrays.asList(s));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值