我正在尝试将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;
}
}
}
答案 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 "";
}