1. ホーム
  2. java

[解決済み] intからcharへの変換でエラーが発生した場合の対処方法

2022-02-28 05:53:58

質問

私は初心者ですが、このコードをコンパイルしているとき

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

}

intからcharへの非可逆変換の可能性というエラーが発生します。

intをcharに変換する方法。

このエラーを解決する方法を教えてください。

解決方法は?

整数と文字間の演算を行う際にオーバーフローが発生することがあります。これは、その値が文字に代入されるため、期待される結果に影響を与えます。

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

のようにcharにキャストしてください。

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