【发布时间】:2021-05-07 15:09:51
【问题描述】:
String s = "1234";
for(int i=0;i<s.length();i++)
{
System.out.println(s.charAt(i));
System.out.println(s.charAt(i)-1);
}
在上面的代码行中,对于第一次迭代,即当 i=0 时,第一行应该打印 1,第二行应该打印 0,但第二行打印 48。为什么会这样?
【问题讨论】:
-
对
char执行算术运算时,会将其转换为int。字符'1'变为 int 49。 -
添加到 khelwood,
s.charAt(i)-1与s.charAt(i-1)。但是,我猜这只会在您的第一个循环中抛出IndexOutOfBoundsException。第二行基本上是s.charAt(-1)。
标签: java for-loop charat string-function