如果在外部使用则在内部可变

Variable inside if used outside

我想做的是获取字符串 a 的第一个字符和字符串 b 的最后一个字符。空 a 应该 return "@+lastb" 空 b 应该 return "firsta+@".

例子:a = "hello", b = "hi" 应该 return "hi"; a = "" and b = "hi" returns "@i";

public String lastChars(String a, String b) {
 if(a.length() > 0) {
   String firstA = a.substring(0,1);
 }
 else {
   String firstA = "@";
 }
 if(b.length() > 0) {
   String lastB = b.substring(b.length()-1);
 }
 else {
   String lastB = "@";
 }
 return firstA + lastB;
}

我收到的错误消息是无法解析变量,我猜这意味着它们从未被创建过?

您必须在条件之前声明变量,以便它们在条件之后保留在范围内。

public String lastChars(String a, String b) 
{
    String firstA = "";
    String lastB = "";
    if(a.length() > 0) {
        firstA = a.substring(0,1);
    } else {
        firstA = "@";
    }
    if(b.length() > 0) {
        lastB = b.substring(b.length()-1);
    } else {
        lastB = "@";
    }
    return firstA + lastB;
}