一定要掌握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));