我正在尝试在String数组中插入字符串值,并在添加这些值后,我想对它们进行排序。但问题是在我循环遍历数组时将所有值插入字符串数组后,我得到null值作为输出!!!
在
中插入值String string;
int number, index = 0;
string = br.readLine();
number = Integer.parseInt(br.readLine());
String[] temp = new String[string.length()*number];
for(int i=0; i<=string.length()-number; i++)
{
temp[index] = string.substring(i, i+number);
System.out.println(temp[index]);
index++;
}
排序值
System.out.println("\nBefore sorting");
for(int i=0; i<index; i++)
System.out.print(temp[index]+" ");
for(int i=index-1; i>0; i--)
for(int j=0; j<i; j++)
if(temp[j].compareTo(temp[j+1]) < 0)
{
String swap = temp[j];
temp[j] = temp[j+1];
temp[j+1] = swap;
}
System.out.println("\nAfter sorting");
for(int i=0; i<index; i++)
System.out.print(temp[index]+" ");
我得到的输出是
aakash 3
AAK
又名
KAS
灰 在分拣之前 null null null null
分拣后 null null null null
我无法理解这个空值来自哪里!理想情况下,我的数组的内容应该是temp [aak aka kas ash],但它的结果是temp [null null null null]
请帮我指出我在这段代码中犯的错误。
答案 0 :(得分:1)
一切正常,你遇到的问题是,你没有正确打印字符串数组。 你的代码:
for(int i=0; i<index; i++)
System.out.print(temp[index]+" ");
应该是:
for(int i=0; i<index; i++)
System.out.print(temp[i]+" ");
答案 1 :(得分:0)
仔细检查您的代码。
for(int i=0; i<index; i++)
System.out.print(temp[index]+" ");
如果你仍然无法弄清楚,只需打印索引变量的值 执行你的for循环。
答案 2 :(得分:0)
您使用的是index
而不是i
。结果该计划正在运作
但是当索引为4时你显示arra[index]
并且你在数组中只有3个元素。
请更改
System.out.println("\nBefore sorting");
for(int i=0; i<index; i++)
System.out.print(temp[index]+" ");
到
System.out.println("\nBefore sorting");
for(int i=0; i<index; i++)
System.out.print(temp[i]+" ");