Java实践问题
前几天我贴了一些练习题,我一直在练习,现在又被卡住了
请首先,我可以问你不张贴完整的解决方案
问题就在这里
http://www.javabat.com/prob/p141494
读到
给定一个字符串和第二个“word”字符串,如果单词出现在字符串的前面,我们会说它与字符串匹配,除非它的第一个字符不需要完全匹配。在匹配时,返回字符串的前面,或者返回空字符串。因此,字符串“hippo”中的“hi”返回“hi”,而“xip”返回“hip”。单词的长度至少为1
startWord(“河马”,“你好”)→ “嗨” startWord(“河马”、“xip”)→ “臀部” startWord(“河马”、“我”)→ “h”
我被卡住了,问题的措辞对我没有帮助!这是我目前掌握的代码
public String startWord(String str, String word)
{
if (str.startsWith(word)){
return str.substring(0, word.length());
}
if (str.substring(1, str.length()).equals(word.substring(1, word.length()))){
return str.substring(0, word.length());
}
return "";
}
希望有人能在这里用一个或两个指针来帮助我,谢谢你的帮助
# 1 楼答案
尝试使用:
对于有条件的,因为它更清楚。此外,tvanfosson和Darth Eru认为第一个条件与第一个字符完全匹配是无关的,这是正确的
# 2 楼答案
你的问题在于你的第二次比较(一般情况)。您正在将str的子串带到str的末尾,并将其与单词的子串进行比较。但是,如果str=“hippo”和word=“xip”,“ippo”!=“知识产权”
另外需要注意的是,一旦您修复了第二个案例,您就不会真正需要第一个案例,因为第二个案例涵盖了第一个案例
# 3 楼答案
这是你的出发点
如果您一次通过一个测试用例,那么可能比一次解决整个问题更容易
# 4 楼答案
在忽略第一个字符的情况下,您只需要比较
word.length() - 1
个字符——以及字符串和单词的相同长度请注意,您确实不需要测试第一个字母完全匹配的情况,因为这是忽略第一个字母的情况的子集
# 5 楼答案
你的想法是对的。。。只需将字符1中的str子字符串与单词进行比较。从字符1到单词结尾的单词的子字符串的长度。 如果匹配,则将str的子字符串返回到单词。长度
# 6 楼答案
第二个IF语句中的问题是将单词与整个子字符串进行比较。您应该将其与(检查课程长度后)进行比较: