我正在用Java编写一个编码问题,我的解决方案有效,但是我看到其他人在他们的博客上发布了另一种解决方案,该解决方案虽然简短一些,但我不知道它为什么起作用。
问题是:
给定一个非空字符串和一个int n,返回一个新字符串,其中已删除索引n处的字符。 n的值将是原始字符串中char的有效索引(即n将在0..str.length()-1
范围内)。
我的代码(在所有条件下都有效):
public String missingChar(String str, int n) {
return str.substring(0,n) + str.substring(n+1,str.length());
}
另一个有效的代码是:
public String missingChar(String str, int n) {
return str.substring(0, n) + str.substring(n + 1);
}
区别就在第二行的末尾。
我的问题是为什么
str.substring(n+1)
产生与str.substring(n+1,str.length())
相同的结果? 最佳答案
substring()方法有两个变体:public String substring(int beginIndex)
要么public String substring(int beginIndex, int endIndex)
子字符串以指定的beginIndex
处的字符开头,并扩展到该字符串的末尾,如果指定了第二个参数,则一直扩展到endIndex - 1
。
关于java - 为什么这两个子字符串调用等效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26239657/