Android子串返回错误

时间:2014-07-09 19:57:24

标签: java android substring

只是测试子字符串,似乎无法使其工作。我想这会返回“E”?

由于某种原因,它会返回空白。

如果我将其更改为substring(0,1),它会按预期返回“T”......但1,1返回空白,而2,1抛出错误。

 String newLetters="TEST";
 Toast.makeText(getApplicationContext(), newLetters.substring(1,1), Toast.LENGTH_SHORT).show();

3 个答案:

答案 0 :(得分:1)

这些数字是起始索引和结束索引。所以

string.substring(2, 2);

不返回任何内容,因为您正在尝试在同一索引之间获取字符串。

Link to documentation

答案 1 :(得分:1)

根据Javadocs

public String substring(int beginIndex,
                        int endIndex)

返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的beginIndex(Inclusive)开始,并扩展到索引endIndex - 1处的字符。

因此子串的lengthendIndex-beginIndex.

因此,如果您想要E中的TEST,请使用

newLetters.substring(1,2)

enter image description here

答案 2 :(得分:0)

substring的参数是(起始索引,结束索引)。它将返回这两者之间的内容,不包括后者。 substring(1,2)将返回' E',我相信子串(2)。 (2,1)将给出错误,因为你的结束索引不能在你的开始索引之前。

您可能会发现这有用:http://www.tutorialspoint.com/java/java_string_substring.htm