java字符串数组排序_在Java中对字符串数组进行排序
允許用戶使用字符串?dāng)?shù)組.他們可以向數(shù)組添加字符串,從數(shù)組中刪除字符串,搜索數(shù)組中的字符串,最終他們將能夠?qū)?shù)組進(jìn)行排序.分類是搞砸我的原因.我嘗試過幾種不同的方法.第一種方法是將數(shù)組轉(zhuǎn)換為ArrayList,并使用Collections對ArrayList進(jìn)行排序,ArrayList將轉(zhuǎn)換回靜態(tài)類數(shù)組.它不起作用.我嘗試的第二種方法是迭代數(shù)組并嘗試僅排序用戶添加的字符串而不是數(shù)組中的所有內(nèi)容(因?yàn)閿?shù)組中有一些空值).也許我應(yīng)該遍歷數(shù)組,然后將非null值存儲到一個新的數(shù)組中,然后我可以對它進(jìn)行排序?但是如果我想在排序新數(shù)組后添加更多字符串呢?這就是為什么我停止了第二個解決方案.第三次嘗試是在我的數(shù)組上使用Arrays.sort()但由于某種原因它不起作用.
這是一個例外:
Exception in thread "main" java.lang.NullPointerException
at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:290)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:157)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at java.util.Arrays.sort(Arrays.java:472)
at java.util.Collections.sort(Collections.java:155)
at testingSearch.sortArray(testingSearch.java:93)
at testingSearch.main(testingSearch.java:42)
這是我的代碼:
import java.util.Scanner;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class testingSearch {
static String[] strArray;
static {
strArray = new String[5];
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(true){
System.out.println("1. Add string to the string array.");
System.out.println("2. Remove string from the string array.");
System.out.println("3. Display strings in string array.");
System.out.println("4. Search the string array for a string.");
System.out.println("5. Sort the strings in the string array.");
int userChoice = 0;
userChoice = input.nextInt();
switch(userChoice) {
case 1:
addString();
break;
case 2:
removeString();
break;
case 3:
displayStrings();
break;
case 4:
searchArray();
break;
case 5:
sortArray();
break;
}
}
}
public static void addString(){
Scanner input = new Scanner(System.in);
System.out.println("What string do you want to add?");
String userInput;
userInput = input.nextLine();
ArrayList stringList = new ArrayList (Arrays.asList(strArray));
stringList.add(userInput);
strArray = stringList.toArray(strArray);
}
public static void removeString(){
Scanner input = new Scanner(System.in);
System.out.println("What string do you want to remove?");
String userInput;
userInput = input.nextLine();
ArrayList stringList = new ArrayList (Arrays.asList(strArray));
stringList.remove(userInput);
strArray = stringList.toArray(strArray);
}
public static void displayStrings(){
for (String s: strArray){
if (!(s == null)){
System.out.println(s);
}
}
}
public static void searchArray(){
Scanner input = new Scanner(System.in);
System.out.println("What string do you want to search the array for?");
String userInput;
userInput = input.nextLine();
ArrayList stringList = new ArrayList(Arrays.asList(strArray));
if (stringList.contains(userInput)){
System.out.println("The string array contains that string!");
}
else {
System.out.println("The string array does not contain that string...");
}
}
public static void sortArray(){
/*ArrayList stringList = new ArrayList (Arrays.asList(strArray));
Collections.sort(stringList);
strArray = stringList.toArray(strArray);*/
/*for (String s: strArray) {
if (!(s == null)){
Arrays.sort(strArray);
}
}*/
List stringList = new ArrayList(Arrays.asList(strArray));
Collections.sort(stringList);
strArray = stringList.toArray(strArray);
//Arrays.sort(strArray);
}
}
總結(jié)
以上是生活随笔為你收集整理的java字符串数组排序_在Java中对字符串数组进行排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java视频压缩 lz4_关于LZMA和
- 下一篇: java实现qq抢红包_Java实现抢红