這裏是我的代碼:發生單行錯誤。我做錯了什麼?
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)
有人能告訴我我做錯了什麼嗎?什麼是小錯誤?
UPDATE
傳遞的字符串的行是 「爲了大家的*勝利者*!」
正在編輯的內容是* victor *到VICTOR並放回字符串sLine中。
我試圖從主方法中指定的掃描儀中取出,然後從掃描儀和上殼中取出我在兩個星號之間特別指定的選項。
你想用while循環做什麼?也許我們可以幫助您重構您的代碼以簡化該行 –
您正試圖訪問字符串的超出範圍區域。向我們展示出現這種情況的'sLine'的價值。 –
更新了我原來的帖子。 – justCause7682mrv