如何解决从 int 到 char 的错误有损转换?

use*_*934 6 java

我是初学者。在编译这段代码时

class UpperLowerCase

{   
    static String ini = "I LOVE JAVA";
    static char str[] = ini.toCharArray();
    static char invr[] = new char[10];
    static int len = 0 , len1 = 0, i;

    static void toUpper()
    {
        for(i=0;i<str.length;i++)
        {
            if(str[i]>=97 && str[i]<=122)
                invr[len1++]=(str[i]-32);
            else
                invr[len++]=str[i];
        }
        invr[len1]='\0';
        System.out.println("Reverse of"+ str+" is \n"+ invr);

    }

    static void toLower()
    {
        for(i=0;i<str.length;i++)
        {
            if(str[i]>=65 && str[i]<=90)
                invr[len1++]=str[i]-32;
            else
                invr[len++]=str[i];
        }
        invr[len1]='\0';
        System.out.println("Reverse of"+ str+" is \n"+ invr);
    }

public static void main(String [] args)
{
    toUpper();
}

}
Run Code Online (Sandbox Code Playgroud)

我收到错误“可能从 int 到 char 的有损转换”

如何将 int 转换为 char。

请帮助我告诉我如何解决这个错误?

ΦXo*_*a ツ 8

在整数和字符之间进行数学运算时可能会出现溢出,这可能会影响预期结果,因为该值将被分配给字符......这里你有

invr[len1++] = str[i]-32;
Run Code Online (Sandbox Code Playgroud)

但你应该像这样转换为 char:

invr[len1++] = (char)(str[i]-32);
Run Code Online (Sandbox Code Playgroud)