java字符串数组排序_在Java中对字符串数组进行排序
允許用戶使用字符串數組.他們可以向數組添加字符串,從數組中刪除字符串,搜索數組中的字符串,最終他們將能夠對數組進行排序.分類是搞砸我的原因.我嘗試過幾種不同的方法.第一種方法是將數組轉換為ArrayList,并使用Collections對ArrayList進行排序,ArrayList將轉換回靜態類數組.它不起作用.我嘗試的第二種方法是迭代數組并嘗試僅排序用戶添加的字符串而不是數組中的所有內容(因為數組中有一些空值).也許我應該遍歷數組,然后將非null值存儲到一個新的數組中,然后我可以對它進行排序?但是如果我想在排序新數組后添加更多字符串呢?這就是為什么我停止了第二個解決方案.第三次嘗試是在我的數組上使用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);
}
}
總結
以上是生活随笔為你收集整理的java字符串数组排序_在Java中对字符串数组进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java视频压缩 lz4_关于LZMA和
- 下一篇: 数据卡片_VISA消息:关于VCPS 2
