Scanner scan = new Scanner(System.in);
System.out.println("Enter a word");
String line = scan.nextLine();
String pig = "";
int a = line.length();
int x = 0;
int y = 0;
while (y < a) {
int b = line.indexOf(" ");
if (line.substring(x, x + 1).equals("a") ||
line.substring(x, x + 1).equals("e") ||
line.substring(x, x + 1).equals("i") ||
line.substring(x, x + 1).equals("o") ||
line.substring(x, x + 1).equals("u"))
{
pig = line.substring(x, b - 1);
}
else {
pig = line.substring(b - 1, x + 2) + line.charAt(x);
}
line = line.substring(b + 1);
y++;
}
System.out.println(pig);
我假设在任何句子中的单词转换成猪拉丁如果单词以元音开始只是在末尾添加的方式,如果它开始以辅音带来的第一个字母的后面,并添加方式我一直在越界出错,我该如何解决这个问题?
堆栈跟踪:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at
java.lang.String.substring(Unknown Source) at pig_latin.main(Firstname_Lastname.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at
java.lang.reflect.Method.invoke(Unknown Source) at
edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272
请在提问时发布完整的错误消息/堆栈跟踪 – Martin 2014-11-04 15:54:10
string有startwith()方法 – 2014-11-04 15:55:29
@akwasiagyeman请更新问题! – StackFlowed 2014-11-04 15:55:51