如何将ascii值转换回String?

时间:2016-10-04 14:28:12

标签: java string eclipse ascii

我正在尝试将String转换为ascii,更改ascii值,然后将这些值转换回字符串。虽然我在正确的轨道上,但我收到一条错误消息,告诉我必须返回一个字符串;我哪里出错了?

public static boolean safeToUse(String text) {

    text = text.toUpperCase();

    int length = text.length(); 

    for ( int a=0; a < length; a++ ) { 

        char c = text.charAt(a); 

        if (c < FIRST || c > LAST) {  //checking range

            return false;
        }
    }
    return true;

}

public static String rot31(String message)
{
    message = message.toUpperCase();

    int length = message.length();  
    for ( int x=0; x < length; x++ ) { 

        int ch = message.charAt(x); 

        if (ch <= 62) {

            int ascii = ch + 31;
        } else {

            int ascii = ch - 62;

            String coded = Integer.toString(ascii);

            return coded;
        }
    }

}

1 个答案:

答案 0 :(得分:-1)

您的rot31方法必须返回一个字符串。您的代码有一个不会返回String的路径。

如果找不到合适的值,您只需返回一个空字符串,或者您可以选择返回null或抛出异常。示例如下所示:

public static String rot31(String message)
{
    message = message.toUpperCase();

    int length = message.length();
    for (int x = 0; x < length; x++)
    {

        int ch = message.charAt(x);

        if (ch <= 62)
        {
            int ascii = ch + 31;
        }
        else
        {

            int ascii = ch - 62;

            String coded = Integer.toString(ascii);

            return coded;
        }
    }

    // Failed to find the correct value
    return "";

}