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