我正在尝试编写一个程序,如果给定了一个带有两个破折号的字符串,它会返回第一个和第二个破折号之间的文本。如果没有至少两个破折号,它将返回不存在。例如,我有一个字符串:
String s = "I AM -VERY- HUNGRY"
我希望我的程序能够返回VERY,它在两个破折号之间。以下是我到目前为止的代码:
public static String middleText(String sentence)
{
int count = 0;
for (int i = 0; i < sentence.length(); i++)
{
if (sentence.charAt(i) == '-')
{
count++;
}
}
if (count >= 2)
{
return sentence.substring(sentence.indexOf("-") + 1);
}
else
{
return "DOES NOT EXIST";
}
}
然而,这段代码并不能产生我想要的输出。如果我将字符串" I AM -VERY- HUNGRY "放入此代码中,它将返回" VERY- HUNGRY "。我该如何使它仅获取文本直到第二个破折号?
sentence.indexOf("-")
返回第一个 "-" 的位置,而只有一个参数的substring
方法则返回从该位置到字符串末尾的子串。 - Sentry