【发布时间】:2014-03-10 19:35:48
【问题描述】:
我试图在不使用 sort 方法的情况下将数组中的字符串列表按字母顺序排序。
public static String[] sortedAdjectives(String[] original)
{
String[] sortedArray;
int aValue = 65;
String word = "";
sortedArray = new String[25];
for(int i = 0; i <25; i++)
{
original[i]=word;
char c = word.charAt(0);
sortedArray[c-aValue]=word;
}
return sortedArray;
是我的方法,并且
public static void main(String[] args) throws FileNotFoundException {
Scanner names = new Scanner(new File("names.txt"));
Scanner adjectives = new Scanner(new File("adjectives.txt"));
String[] adjectiveArray;
adjectiveArray = new String[25];
int counter = 0;
while (counter<25)
{
String in = adjectives.next();
fixCapitalization(in); //method that fixes capitalization
adjectiveArray[counter]=in;
counter++;
}
sortedAdjectives(adjectiveArray);
是我将文件中的项目放入数组的位置。我来了
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at Hmwk.sortedAdjectives(Hmwk.java:56)
at Hmwk.main(Hmwk.java:24)
当我尝试运行我的程序时,我不知道哪里出错了。如果您能指出我正确的方向,我将不胜感激。感谢您的宝贵时间。
【问题讨论】:
-
在您的排序方法中,
word是空字符串。你正在用这个覆盖你输入数组的所有值,并试图访问一个不存在的字符。 -
您对输入字符串做出了许多假设(有几个错误,例如假设只有 25 个形容词。您的策略应该是实现一个对字符串数组进行排序并调用它的方法。
标签: java arrays string sorting char