【发布时间】:2019-09-23 16:31:57
【问题描述】:
我正在尝试制作一个程序,如果给定的字符串中有两个破折号,则返回前两个破折号之间的文本。如果它没有至少两个破折号,它将返回它不存在。前任。我有一个字符串
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只有一个参数为您提供从该位置开始到结束的字符串。 -
提示:当一切顺利时,您的方法应该返回一个 String。所以返回一个 String error 消息真的是个坏主意!使用该方法的代码必须检查返回的字符串是否不存在才能弄清楚发生了什么。风格不好!