首页 > 解决方案 > 为什么它给出数字作为输出而不是数组中的元素?

问题描述

char[] np={'a','s','d','f'};
System.out.println(np[1]+np[np.length-1]);

// this print statement is giving output:217

System.out.println(""+np[1]+np[np.length-1]);
// this print statement is giving output:af

我只想知道为什么第一个将数字作为输出?这是在java中。

标签: javaarrays

解决方案


's' + 'f'将根据编码将每个字符转换为其字节表示形式,并自动将其转换为一个int值。这些基于扩大的原始转换规则。基本上,char被视为更具体的类型,int并且当加在一起时,两者中更一般的 ( int) 将是返回的类型。

为了解决这个问题,您可以将其中一个变量转换为一种类型,以防止编译器将其解释为int加法。一种方法是String像上面那样在开头添加一个。另一种方法可能是在等式中修改np[1]为。String.valueOf(np[1])


推荐阅读