为什么这段代码不会仅仅返回" S"而是整个String MINUS" S"

时间:2014-10-28 05:49:52

标签: java

我是APCS的新手,正在练习我的考试。在通过逐步分析分析此代码后,我确信答案未在下面列出,而是#34; S&#34;。但是,我的老师说答案是&#39; <&#39;

你能解释一下这个问题吗?


考虑以下方法:

public static String WhatsUp (String str1, String str2)
{
    int index = str1.indexOf(str2);
    if (index != -1)
        str1 = str1.substring(0, index) +
                str1.substring(index + str2.length());
    return str1;
}

这行代码输出了什么?

System.out.print( WhatsUp(“SpongeBobSquarePants”, “S”));

(A)pongeBobquarePants

(B)pongeBobquarePant

(C)SpongeBobSquarePants

(D)pongeBobSquarePants

(E)Patrick

1 个答案:

答案 0 :(得分:3)

int index = str1.indexOf(str2);

index设置为0

str1.substring(0, index)

这不返回任何内容(索引为零,端点是独占的(不包括在内)

public String substring(int beginIndex,int endIndex)

  

返回一个新字符串,该字符串是此字符串的子字符串。 子字符串   从指定的beginIndex开始并延伸到at处的字符   index endIndex - 1. 因此子字符串的长度是   endIndex的-的beginIndex。

+ str1.substring(index + str2.length());

这将返回位置1

的所有内容
return str1;

答案是D