我試圖讓從三個詞是由用戶輸入的首字母縮寫:StringIndexOutOfBoundExceptions錯誤顯示
import java.util.Scanner;
public class Acronym
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String phrase;
System.out.println("Please, enter the three words here>> ");
phrase = input.nextLine();
char first, second, third;
int stringLength;
int x = 0;
char c;
stringLength = phrase.length();
first = phrase.charAt(0);
second = phrase.charAt(x + 1);
third = phrase.charAt(x + 1);
for(x = 0; x < stringLength; x++);
{
int a = 1;
c = phrase.charAt(x);
if(Character.isWhitespace(c));
if(a <= 1)
second = phrase.charAt(x+1);
else if(a <= 2)
third = phrase.charAt(x++);
}
System.out.println("The acronym is " + first + second + third);
}
}
但是,每當我試着輸入StringIndexOutOfBoundExceptions錯誤顯示。例如,我曾經嘗試輸入這三個詞「一二三」,這是結果:
請輸入詞/詞組:在線程「主要」的java.lang 一二三
例外。的StringIndexOutOfBoundsException:字符串索引超出範圍:13 在java.lang.String.charAt(String.java:646) 在Acronym.main(Acronym.java:23)
我已經解決了IndexOutOfBoundExceptions錯誤,謝謝! 然而,結果是OTn這不是我想要的輸出。由於我輸入「一二三」,我希望結果是「OTT」。我該怎麼辦? – Chrissy 2014-10-29 20:56:20
你的新問題是你只有一次賦值'third',並且在循環之前的那一行。您已在初始「O」後將其分配給角色。我不確定你對變量'a'的想法是什麼,但是你把它分配給'1',你永遠不會改變它。這意味着你的'else if'條件從不被檢查。我建議你離開計算機幾分鐘,並在紙上畫出你想要你的程序做什麼。 – 2014-10-29 22:46:21