【发布时间】:2016-05-14 23:07:07
【问题描述】:
这是我的代码:
while(n4.hasNext()){
sLine = n4.next();
if(sLine.contains("*")){
F1 = sLine.indexOf("*");
L1 = sLine.indexOf("*", F1+1);
upperC = sLine.substring(F1+1, L1-1);
upperC = upperC.toUpperCase();
// sLine = sLine.substring(0,F1-1)+upperC+sLine.substring(L1+1, sLine.length() - 1);
}
在以“sLine”开头的最后一行,由于某种原因,我似乎无法让它到达行尾而不说它
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at assign3.LoopPatterns.emphasize(LoopPatterns.java:138)
at assign3.LoopPatterns.main(LoopPatterns.java:291)
有人可以告诉我我做错了什么吗?小错误是什么?
更新
正在传递的字符串的行是“To you the * victor * of all!”
正在编辑的是 *victor * 到 VICTOR 并放回字符串 sLine。
我正在尝试从 main 方法中指定的扫描仪中获取,然后从扫描仪和大写中获取我在两个星号之间指定的选择。
【问题讨论】:
-
你想用while循环做什么?也许我们可以帮助您重组代码以简化该行
-
您正在尝试访问字符串的越界区域。向我们展示发生这种情况的
sLine的值。 -
更新了我原来的帖子。
标签: java substring variable-length