Вот мой код:Ошибка с одной строки. Что я сделал не так?
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