Java String Manipulation

时间:2015-01-10 12:08:50

标签: java

为什么下面的陈述会给出错误

       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);
    }
}

2 个答案:

答案 0 :(得分:2)

char x = 'A';
int temp = x;
temp = temp+1;
x = (char) temp;
System.out.println(x + " " + temp);

尝试使用此代码,因为charint转换是隐式的,但intchar是显式转换。

答案 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);