黑马程序员技术交流社区
标题:
小问题……求解答
[打印本页]
作者:
Michael_xpd
时间:
2013-11-20 17:23
标题:
小问题……求解答
java学的太糙了,我今天在输出一个数组时,写了这样一句:System.out.print(arr[i]+' '),结果就出错了,而我把这句话改成System.out.print(arr[i]+" ")就没问题了,这是为什么啊?小弟不懂,还请大神指点!
作者:
文涛
时间:
2013-11-20 17:31
单引号‘’括起来的叫做字符,而双引号""括起来叫做字符串,print方法打印的就是字符串,并且在字符串使用+号的时候,其他类型会自动的升级为字符串类型,于是System.out.print(arr[i]+" ")就对了,因为arr[i]被自动升级为字符串,并连接上" ",但是后面一个System.out.print(arr[i]+' ')是不行的,因为字符是char型,而arr[i]这个元素是另一个类型,如果这个元素是int,那么char会自动升级为int型,结果就会是这个元素加上空格对应的asc码
总之,这涉及到类型自动转换的问题
作者:
wjj410830911
时间:
2013-11-20 18:15
“”是字符串 类型String
‘’是字符 类型char
与“”字符串相加 相当于与字符串连接 变成一个新的字符串 而且“ ”里面不是什么都没有 有个\n 空格
与‘’字符相加 相当于与字符char类型运算 数据类型不同运算,要么强转要么自动类型提升,更何况数组是引用数据类型 char是基本数据类型 根本就不能运算 所以会报错
作者:
hurryup
时间:
2013-11-20 18:57
public class Test
{
public static void main(String[] args)
{
int[] c={2,4,6};
System.out.println(c[1]+' ');
}
}
复制代码
可以的楼主,你的代码给我看下,字符可以用+‘ ’
我给个代码你看:
结果是36.
作者:
smileven
时间:
2013-11-20 19:06
java学的太糙了,我今天在输出一个数组时,写了这样一句:System.out.print(arr[i]+' '),结果就出错了,而我把这句话改成System.out.print(arr[i]+" ")就没问题了,这是为什么啊?小弟不懂,还请大神指点!
你的目的是想输出数组中的值,然后每个值用空格分开吧?
System.out.print();括号里面的值可以是任何的基本数据类型。
(1)System.out.println(arr[i]+""):
因为arr[i]的优先级比空格字符的优先级高,
所以这样是将arr[i]的值与空格字符的ascII值相加,当然就不是arr[i]的值了。
(2)System.out.print(arr[i]+“ ”)是:
将arr[i]和空格连成了一个字符串,
所以你在这输出的是一个字符串。(这些在String这一节会讲到),
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2