解释代码以及为什么减去子字符串

时间:2017-01-24 22:02:58

标签: java

public boolean frontAgain(String str)
{
int len = str.length();
if(len >= 2)
    return str.substring(0, 2).equals(str.substring(len-2, len));
else
    return false;
}

有人可以解释为什么第二个子串语句使用单词示例和逐步分析。程序检查前两个字母是否与最后两个字母匹配。例如,这个词被编辑了。

1 个答案:

答案 0 :(得分:2)

str.substring(len-2, len)请求字符串的最后两个字母。

要获取最后两个字母,您需要将子字符串的起始值设置为长度(5)减去2个字符,这样就可以得到3.这是因为Java中的索引从0开始。例如,字符串“horse”中的字符为01234(即“h”表示索引0,“o”表示索引1等),长度为5。

String.subString的第二个参数用于结束索引,即独占。这意味着第一个字符位置不是您想要的子字符串的一部分。在这种情况下,它将是长度,因为它比字符串的结尾高1个字符。

如果你把所有这些放在一起,你会得到以下结果:

String str = "horse"
int length = str.length() // 5
String lastTwoChars = str.substring(length-2, length); // from position 3 to 5
System.out.println(lastTwoChars); // would show you "se"

String.substring的文档。