如何在java中按字母顺序对字符串数组进行排序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在java中按字母顺序对字符串数组进行排序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2883字,纯文字阅读大概需要5分钟。
内容图文
![如何在java中按字母顺序对字符串数组进行排序?](/upload/InfoBanner/zyjiaocheng/726/348c818966fe46788333aeae8abdfb49.jpg)
我是编程/编码的新手,现在已经在学校停留了几天.目标是采用一个充满单词的数组(每个位置是一个不同的单词)并按字母顺序排序.我已经尝试过对堆栈溢出进行一些研究,但是在我发现的一些例子之后我遇到了一些麻烦.类和驱动程序(如果你愿意,我使用两部分设置)都可以编译,没有问题.当我尝试从我的驱动程序使用alphaSort时,会出现此问题.我收到下面标记的行的空指针异常.我过去曾经遇到过这些例外的麻烦,所以我确信这是我忽略的一些小事.然而,如上所述,我还没有足够流畅的java语法来捕获像这样的小错误.
我想我应该只包括整个方法,以防我的错误在开始之前,在排序部分之前.我到目前为止(我在Stack溢出时发现了这个):
public void alphaSort()
{
String alphaList[] = new String[wordList.size()];
int count=0;
//puts wordList into alphaList for easier sorting
while(count<wordList.size()-1)
{
alphaList[count]=wordList.get(count);
count++;
}
int shortestStringIndex;
//sort begins here
for(int j=0; j<alphaList.length -1; j++)
{
shortestStringIndex = j;
for(int i=j+1; i<alphaList.length; i++)
{
if(alphaList[i].trim().compareTo(alphaList[shortestStringIndex].trim())<0) //null pointer exception points here
{
shortestStringIndex = i;
}
}
if(shortestStringIndex !=j)
{
String temp = alphaList[j];
alphaList[j] = alphaList[shortestStringIndex];
alphaList[shortestStringIndex]=temp;
}
}
//prints out results
count=0;
while(count<alphaList.length)
{
System.out.println(alphaList[count]);
alphaOut.print(alphaList[count]);
count++;
}
}
任何帮助将不胜感激.请尽可能详尽地给出答案(正如我所说,我是一个java新手).谢谢 :)
编辑:测试空值(我假设我的数组列表中的点是空白的)我做了以下方法:
public void isNull()
{
int count=0;
while(count<wordList.size()-1)
{
if((wordList.get(count)).equals(""))
{
System.out.println("null");
break;
}
else
{
System.out.println("nothing yet");
}
count++;
}
}
while循环从未破坏,我的方法跑完了.
解决方法:
您需要更新第一个while循环以匹配:
while(count < wordList.size()) {
alphaList[count] = wordList.get(count);
count++;
}
您没有将列表的每个索引复制到数组,这意味着当它检查最后一个索引时,它找不到值(NullPointerException).
编辑:
这是我的完整测试类:
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
new Test();
}
private ArrayList<String> wordList = new ArrayList<String>();
public Test() {
wordList.add("Test");
wordList.add("Bee");
wordList.add("Pig");
wordList.add("Dog");
alphaSort();
}
public void alphaSort() {
String[] alphaList = new String[wordList.size()];
int count = 0;
while(count < wordList.size()) {
alphaList[count] = wordList.get(count);
count++;
}
int shortestStringIndex;
for(int j = 0; j < alphaList.length - 1; j++) {
shortestStringIndex = j;
for(int i = j + 1; i < alphaList.length; i++) {
if(alphaList[i].trim().compareTo(alphaList[shortestStringIndex].trim()) < 0) {
shortestStringIndex = i;
}
}
if(shortestStringIndex != j) {
String temp = alphaList[j];
alphaList[j] = alphaList[shortestStringIndex];
alphaList[shortestStringIndex]= temp;
}
}
count = 0;
while(count < alphaList.length) {
System.out.println(alphaList[count++]);
}
}
}
输出:
Bee
Dog
Pig
Test
内容总结
以上是互联网集市为您收集整理的如何在java中按字母顺序对字符串数组进行排序?全部内容,希望文章能够帮你解决如何在java中按字母顺序对字符串数组进行排序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。