Hoe los ik de conversie met verlies op van int naar char?

Ik ben een beginner. Tijdens het compileren van deze code

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

Ik krijg de foutmelding “mogelijke conversie met verlies van int naar char”

Hoe te converteren naar char.

Help me alsjeblieft door te vertellen hoe ik deze fout kan oplossen?


Antwoord 1, autoriteit 100%

Je kunt een overloop hebben bij het uitvoeren van wiskundige bewerkingen tussen gehele getallen en tekens, dit kan het verwachte resultaat beïnvloeden, aangezien die waarde aan een teken wordt toegewezen… hier heb je

invr[len1++] = str[i]-32;

maar je moet casten naar char zoals:

invr[len1++] = (char)(str[i]-32);

Other episodes