Java 不';t返回所需的连接字符串
我改进了CodingBat的任务解决方案。我从上一个中找到了更好的解决方案,当我测试它时,在一个测试用例中得到了一个意想不到的解决方案Java 不';t返回所需的连接字符串,java,string,if-statement,char,jvm,Java,String,If Statement,Char,Jvm,我改进了CodingBat的任务解决方案。我从上一个中找到了更好的解决方案,当我测试它时,在一个测试用例中得到了一个意想不到的解决方案 public String startOz(String str) { String result = (str.indexOf('o') == 0 ? "o" : "").concat(str.indexOf('z') == 1 ? "z" : ""); return result; } 我不明白为什么当我希望得到test=z时,我得到了空字
public String startOz(String str) {
String result = (str.indexOf('o') == 0 ? "o" : "").concat(str.indexOf('z') == 1 ? "z" : "");
return result;
}
我不明白为什么当我希望得到test=z时,我得到了空字符串作为结果,因为在你的test
字符串中没有'o'
字符,所以你把一个空字符串
与空字符串
,因为'z'
字符的第一个索引是0indexOf
返回第一个匹配索引,因此它是0,而不是1。测试String
中没有'o'
字符,因此将空字符串
与空字符串
连接,因为'z'
字符的第一个索引是0indexOf
返回第一个匹配的索引,因此它是0,而不是1。因为字符串索引从0开始
str.indexOf('z') == 1 is false
str.indexOf('z') == 0 is true
因为字符串索引从0开始
str.indexOf('z') == 1 is false
str.indexOf('z') == 0 is true
str.indexOf('z')==1
返回false,因为“返回指定字符第一次出现的字符串中的索引”。在您的例子中,str.indexOf('z')
是零,因为零是第一次出现
有一个定义从哪个索引开始的函数,因此您可以使用以下函数检查Z是否是第二个字符:
str.indexOf('z', 1) == 1
也就是说,解决此问题的更好方法可能是使用:
str.indexOf('z')==1
返回false,因为“返回指定字符第一次出现的字符串中的索引”。在您的例子中,str.indexOf('z')
是零,因为零是第一次出现
有一个定义从哪个索引开始的函数,因此您可以使用以下函数检查Z是否是第二个字符:
str.indexOf('z', 1) == 1
也就是说,解决此问题的更好方法可能是使用:
由于indexOf条件的结果为空字符串,因此返回空字符串的原因
"zzzz"
这部分返回空字符串,因为没有“o”字符
(str.indexOf('o') == 0 ? "o" : "") //Equals to ""
然后它也返回空,因为“z”是索引0
(str.indexOf('z') == 1 ? "z" : "") //Equals to ""
indexOf返回与索引号匹配的第一个字符,因此“z”的索引为0。
这就是它。返回空字符串的原因,因为indexOf条件的结果是空字符串
"zzzz"
这部分返回空字符串,因为没有“o”字符
(str.indexOf('o') == 0 ? "o" : "") //Equals to ""
然后它也返回空,因为“z”是索引0
(str.indexOf('z') == 1 ? "z" : "") //Equals to ""
indexOf返回与索引号匹配的第一个字符,因此“z”的索引为0。
就这样。在另一个方法中有一个方法。这只是一个打字错误吗?我想说的是调试代码!请创建一个完整而具体的。str.indexOf('z')
不会返回1
如果str==“zzzz”
,它将是0
您假设每个人都知道startOz
任务是什么,以及之前的解决方案是什么。请回答您的问题并添加链接和简短描述(以防链接及时消失)。关于StackOverflow的问题不仅仅是针对你,而是针对未来的每一位编码人员。你在另一个方法中有一个方法。这只是一个打字错误吗?我想说的是调试代码!请创建一个完整而具体的。str.indexOf('z')
不会返回1
如果str==“zzzz”
,它将是0
您假设每个人都知道startOz
任务是什么,以及之前的解决方案是什么。请回答您的问题并添加链接和简短描述(以防链接及时消失)。关于StackOverflow的问题不仅针对你,也针对未来的每一位程序员。+1对于你的讽刺评论,你的回答已经晚了,因为@Michel已经详细回答了,但仍然投票支持REP:p,Ravi迟到总比不迟到好。+1对于你的讽刺评论,你回答这个问题已经晚了,因为@Michel已经详细回答了,但仍然投票支持REP:p,Ravi迟到总比不迟到好。感谢你对我的问题做出的明确解释和解决方案!感谢您对我的案例的清晰解释和解决方案!