JAVA中char与String的区别
有很多同学在使用char与String总是容易弄混,导致代码异常,今天我们来讲解两者之间的区别。
- 我们应该明白char是基本的数据类型,而String是一个类,这是两者之间的本质区别
- char表示字符,定义时使用单引号,只可以存储一个字符。
- String表示字符串,定义时使用双引号,可以存储一个或多个字符。
那么我们如何从String获取char
String hex="今天是周一!";
char a=hex.charAt(0);
这样我们就可以获取char类型的字符‘今’,charAt()是通过下标索引的方法去访问String.
#在数组中,用一种方法也可以做到。使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。
char转String
将char转换为String大致有6种方法。总结如下
String s = String.valueOf('c'); //效率最高的方法
String s = String.valueOf(new char[]{'c'}); //将一个char数组转换成String String s = Character.toString('c'); // Character.toString(char)方法实际上直接返回String.valueOf(char)
String s = new Character('c').toString();
String s = "" + 'c'; // 虽然这个方法很简单,但这是效率最低的方法
// Java中的String Object的值实际上是不可变的,是一个final的变量。
// 所以我们每次对String做出任何改变,都是初始化了一个全新的String Object并将原来的变量指向了这个新String。
// 而Java对使用+运算符处理String相加进行了方法重载。
// 字符串直接相加连接实际上调用了如下方法:
// new StringBuilder().append("").append('c').toString();
String s = new String(new char[]{'c'});