我知道我错过了一些东西,这是我真正需要的帮助。代码不工作,在所有情况下,我正在寻找帮助改善/修复它。
任务:
我目前拥有的代码:
public String word(int num, String words)
{
int l = words.indexOf(" ");
int r = words.indexOf(" ", l+1);
for(int i = 3; i <= num; i++){
l = r;
r = words.indexOf(" ", l+1);
//if(i != num)
// l = r;
}
String theword = words.substring(l,r);
return theword;
}
}
5条答案
按热度按时间62lalag41#
由于这显然是家庭作业,我将只给予你文字。
您的方法最终可能会奏效,但它非常费力且过于复杂,因此很难调试,也很难做对。
split()
方法使用String的APInum
处的元素减1(数组从零开始索引num
,则采取您认为合适的操作对于第2部分,简单形式的解决方案可以是:
toUpperCase()
方法pvcm50d12#
因为这是家庭作业,你已经表现出了一些努力。这是你如何做你的问题的第一部分。这个代码是相当明显的。
1)如果数字大于字符串中的单词数,则返回null,因为我们不希望用户在字符串中只有2个单词时输入5
2)按空格拆分字符串,基本上返回包含用户指定数字的数组
还有更多的条件你必须弄清楚,如告诉用户输入一个数字的字符串长度,因为它不会给予他任何结果,并采取输入从
Scanner
,而不是直接添加输入的方法。你的问题的第二部分必须由你来尝试。
tktrz96b3#
嗯......你很少看到有人带着家庭作业来这里,同时表现出努力,所以太棒了:)。
这是一个如何拆分字符串并从该字符串返回[x]元素的示例
是的,这是一个工作的例子,但不要只是复制和粘贴你的家庭作业-作为简单的问题,从老师-这是什么做,或这是如何工作,你出来:)!所以理解代码,并尝试修改它的方式,你熟悉什么是做什么。也值得得到一些Java书籍-我推荐头第一Java由O '真的〈- v.好初学者的书!
如果你有任何问题,请一定要问!。注意这个答案不是100%符合教科书的要求,所以你可以相应地修改这个代码。
从第2部分开始。波西米亚人说的也可以,但是有更快的解决办法。
看StringBuilder();要将字符串转换为所有字母都是大写,可以在此反转字符串上使用.toUpperCase()方法:)
wnvonmuf4#
您可以尝试:
hsgswve45#
对于第一个问题,我会给予你两种方法(1.推荐):
1.使用
String.split
方法将单词拆分为单词数组,其中每个元素都是一个单词。它将创建一个单词数组,如[hello, my, name, is, Michael]
,而不是一个包含所有单词的字符串,非常简单:1.**只有在无法使用数组时才使用此方法!**在单词中循环,直到找到足够的空格来匹配要查找的单词:
对于第二个问题,只需 * backward * 遍历字符串,将每个字母添加到一个新字符串中,然后将原字符串中的每个字母添加到新字符串中,但顺序是从后向前,然后使用
String.toUpperCase()
将字符串转换为大写,如下所示: