Java 解释错误输出发生的原因? 公共类ArrayIntro { 公共静态void main(字符串[]args) { int[]a; a=新整数[10]; 扫描仪sc=新的扫描仪(System.in); 对于(inti=0;i
只需使用以下代码即可 当您在for循环内部打印sout时,它将打印数字和空格的总和(Java 解释错误输出发生的原因? 公共类ArrayIntro { 公共静态void main(字符串[]args) { int[]a; a=新整数[10]; 扫描仪sc=新的扫描仪(System.in); 对于(inti=0;i,java,arrays,io,java.util.scanner,Java,Arrays,Io,Java.util.scanner,只需使用以下代码即可 当您在for循环内部打印sout时,它将打印数字和空格的总和(')。空格的ASCII值为32,因此您可以看到每个元素的附加值为32 因为你可以参考这个链接,它将帮助你 简单地说,您可以这样写:System.out.print(新整数(“”));,它将打印32 如果只想添加空格,请使用双引号。 系统输出打印(e+); < P>单引号作为字符和字符加上整数将用ASCII代码进行总结。 public class ArrayIntro { public static voi
'
)。空格的ASCII值为32,因此您可以看到每个元素的附加值为32
因为你可以参考这个链接,它将帮助你
简单地说,您可以这样写:System.out.print(新整数(“”));,它将打印32
如果只想添加空格,请使用双引号。
系统输出打印(e+);
< P>单引号作为字符和字符加上整数将用ASCII代码进行总结。
public class ArrayIntro
{
public static void main(String[] args)
{
int[] a;
a=new int[10];
Scanner sc =new Scanner(System.in);
for(int i=0;i<10;i++)
{
a[i]=sc.nextInt();
}
for(int e:a)
{
System.out.print(e+' ');
}
}
}
publicstaticvoidmain(字符串[]args)
{
int[]a;
a=新整数[10];
扫描仪sc=新的扫描仪(System.in);
for(int i=0;i简单地说,“”是ASCII中的一个字符,它的值是32。因此,据我所知,您可能希望它直接打印,以便您可以将“”替换为“”。请始终记住,单引号用于字符,双引号用于字符串
对于您的答案,您可以这样做:System.out.print(e+);
与此相反:System.out.print(e+”;
简而言之,要修复程序,您需要使用”
(带双引号)而不是'
问题在于+
操作符在Java中有两种不同的含义
- 如果其中一个操作数是
字符串
,则+
表示“将这两个操作数连接在一起”。如果另一个操作数不是字符串
,则必须以某种方式对其进行转换,并且有一些规则可供参考
- 如果两个操作数都不是
字符串
,则+
表示“将这两个操作数相加”-也就是说,它们被视为数字。它们可以被添加为double
值、float
值、long
值或int
值,具体取决于数据类型。但如果它们是short
、byte
或char
,它们将被视为int
。这称为二进制数字Java语言规范对此进行了详细解释
现在在Java中,单引号用于分隔char
文字。因此,当您编写e+'
时,您将int
添加到char
中。这是一个加法-char
被视为int
,操作数被添加为数字。
对应的数字是32,sinc这是Java使用的字符编码中的数值,类似于UTF-16。与本页上的一些其他答案相反,它不是ASCII
双引号用于分隔字符串
文字。因此,如果您写入e+“”
,则操作数是int
和字符串
。这意味着您不再添加任何内容,而是进行连接。int
首先转换为字符串
,然后连接到“”
,这将为您提供您期望的结果。尝试使用“
而不是”
-当您将字符添加到数字中时,数据类型会做一些疯狂的事情。谢谢。但为什么它会添加这些呢?此行的行为类似于System.out.print(e+“”);
1+32,2+32,3+32,因为ASCII的空格是32。您可以使用双引号代替单引号,如“System.out.println(e+”)59问题是为什么它每位数都加32。所以简单的回答是,当你把单个引用的空间当作空间字符时,在java <代码>空间字符(‘’’)/Code >中有32个Unicode值,这就是为什么它每增加一个数字就有32个。
public static void main(String[] args)
{
int[] a;
a=new int[10];
Scanner sc =new Scanner(System.in);
for(int i=0;i<10;i++)
{
a[i]=sc.nextInt();
}
for(int e:a)
{
System.out.print(e+" ");
}
}