每当我尝试执行此代码时,只要我输入一个字母的单词,它就会返回一个错误,尽管编译很好并且使用任何其他单词超过一个字母的短语\
我很困惑为什么会这样,因为一切都应该返回正常,但是每当代码通过一个字母单词时,它会自动停止程序并结束它
import javax.swing.*;
// The "PigTrans" class.
public class PigTrans
{
public static void main (String[] args)
{
String userInput;
userInput = JOptionPane.showInputDialog (null, "Please enter a word");
System.out.println (PigTrans.pigTranslator (userInput));
} // main method
public static String pigTranslator (String word)
{
int[] anArray;
String phrase = "";
String[] words = word.split ("\\s+");
String[] newWord = new String [words.length];
for (int i = 0 ; i < words.length ; i++)
{
char number;
number = words [i].charAt (0);
int ascii;
ascii = (int) number;
if (word.length () <= 1)
{
if ((ascii >= 48) && (ascii <= 57))
{
newWord [i] = words [i];
phrase = phrase + newWord [i] + " ";
}
else
{
newWord [i] = words [i];
phrase = phrase + newWord [i] + " ";
}
}
else if ((ascii >= 65) && (ascii <= 90)) //Checks if the word begins with a capital
{
char word2;
word2 = words [i].charAt (0);
if (startsWithQU (words [i]) == true)
{
newWord [i] = words [i].substring (2);
newWord [i] = newWord [i] + "quay";
}
else if (checkAscii (word2) == true)
{
newWord [i] = words [i] + "way";
}
else
{
String letter = "";
letter = words [i].substring (0, 1);
newWord [i] = words [i].substring (1);
newWord [i] = newWord [i] + letter + "ay";
}
String firstLetter, restOfWord, FirstLetter2;
firstLetter = newWord [i].substring (0, 1);
restOfWord = newWord [i].substring (1);
restOfWord = restOfWord.toLowerCase ();
firstLetter = firstLetter.toUpperCase ();
newWord [i] = firstLetter.concat (restOfWord);
phrase = phrase + newWord [i] + " ";
}
else
{
char word2;
word2 = words [i].charAt (0);
if (startsWithQU (words [i]) == true)
{
newWord [i] = words [i].substring (2);
newWord [i] = newWord [i] + "quay";
}
else if (checkAscii (word2) == true)
{
newWord [i] = words [i] + "way";
}
else
{
String letter = "";
letter = words [i].substring (0, 1);
newWord [i] = words [i].substring (1);
newWord [i] = newWord [i] + letter + "ay";
}
phrase = phrase + newWord [i] + " ";
}
}
return phrase;
} //pigTranslator
public static boolean checkAscii (char letter)
{
boolean correct = false; //Declares the boolean variable as false
int ascii;
ascii = (int) letter;
if ((ascii == 65) || (ascii == 69) || (ascii == 73) || (ascii == 79) || (ascii == 85) || (ascii == 97) || (ascii == 101) || (ascii == 105) || (ascii == 111) || (ascii == 117))
{
correct = true;
}
return correct;
} // PigMethods class
public static boolean startsWithQU (String word)
{
boolean checkQU = false; //Declares variables needed to check for "qu." Program takes two letters from the word and check if it starts with "qu."
String QUcheck;
QUcheck = word.substring (0, 2);
if (QUcheck.equalsIgnoreCase ("qu")) //When the word starts with "qu, return of boolean value becomes true."
{
checkQU = true;
}
return checkQU; //If return value is not true, the varuiable returns the value of checkQU.
} //startsWithQU
} // PigTrans class