为什么我总是让字符串超出范围?
return nameString.substring(nameString.indexOf(" ", 0), nameString.lastIndexOf(" ", 0));
为什么总是返回错误?我只想将字符串从第一个出现的空格字符返回到字符串中最后一个出现的空格?
return nameString.substring(nameString.indexOf(" ", 0), nameString.lastIndexOf(" ", 0));
Why is it keep returning an error? I just want to return the string from the first occurring space character, to the last occurring space in the string?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
去掉indexOf 和lastIndexOf 的
, 0
参数。当您将 0 的 fromIndex 传递给 lastIndexOf 时,它会从字符串的开头向后搜索以查找匹配项。当它找不到时,它返回 -1,这是子字符串的无效参数。Get rid of the
, 0
parameters to indexOf and lastIndexOf. When you pass a fromIndex of 0 to lastIndexOf it searches backwards from the start of the string to find a match. When it doesn't find one it returns -1 which is an invalid argument to substring.让我们把你的问题分成几部分
indexOf: 它从左到右开始阅读当找到第一个匹配的字符时停止,并返回字符的位置
lastIndexOf : 它开始从右向左读取,当字符匹配时停止并返回匹配字符的位置
警告:您错误地给出了位置 0,它从右向左读取并发现没有匹配的内容,因此返回 -1) */
Let's break your question in parts
indexOf : it start reading from left to right & stop when first matched char found, and returns the position of char
lastIndexOf : it start reading from right to left and stop when char matched and returns the position of matched char
Caution : you are making mistake to giving the position 0, it reads from right to left and found nothing matched so returns -1) */