为什么下面的陈述会给出错误
char rep=(str.charAt(len-1))-1;
str.replace(str.charAt(len-1),rep);
error: possible loss of precision
以下代码正常工作
class test
{
public static void main(String arg[])
{
char x='A';
x=x+1;
System.out.println(x);
}
}
答案 0 :(得分:2)
char x = 'A';
int temp = x;
temp = temp+1;
x = (char) temp;
System.out.println(x + " " + temp);
尝试使用此代码,因为char
到int
转换是隐式的,但int
到char
是显式转换。
答案 1 :(得分:1)
您正在尝试进行向下转换(int --> char
),这不是隐含的。您必须明确地转发它。
下面的代码无法正确编译。
char x='A';
x=x+1;// can not convert from int to char implicitly.
将其更改为
char x = 'A';
x+=1;// it will automatically cast to char(implicit)
类似更改下面的代码行,您必须将其强制转换为char。
char rep=(char)((str.charAt(len-1))-1);