允许用户使用字符串数组进行演奏。他们可以将字符串添加到数组中,从数组中删除字符串,在数组中搜索字符串,最终他们将能够对数组进行排序。排序使我很困惑。我尝试了几种不同的方法。第一种方法是将数组转换为ArrayList并使用Collections对ArrayList进行排序,然后将其转换回静态类数组。没用
我尝试的第二种方法是遍历数组,并尝试仅对用户添加的字符串进行排序,而不是对数组中的所有内容进行排序(因为数组中存在一些空值)。也许我应该遍历数组,然后将非null值存储到可以排序的新数组中?但是,如果要在对新数组排序后添加更多字符串怎么办?这就是为什么我停止使用第二种解决方案的原因。第三次尝试是在我的数组上使用(),但是由于某种原因,它不起作用。
这是例外:
Exception in thread "main"
at (:290)
at (:157)
at (:146)
at (:472)
at (:155)
at (:93)
at (:42)
这是我的代码:
import ;
import ;
import ;
import ;
import ;
public class testingSearch {
static String[] strArray;
static {
strArray = new String[5];
}
public static void main(String[] args) {
Scanner input = new Scanner();
while(true){
("1. Add string to the string array.");
("2. Remove string from the string array.");
("3. Display strings in string array.");
("4. Search the string array for a string.");
("5. Sort the strings in the string array.");
int userChoice = 0;
userChoice = ();
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();
("What string do you want to add?");
String userInput;
userInput = ();
ArrayList stringList = new ArrayList ((strArray));
(userInput);
strArray = (strArray);
}
public static void removeString(){
Scanner input = new Scanner();
("What string do you want to remove?");
String userInput;
userInput = ();
ArrayList stringList = new ArrayList ((strArray));
(userInput);
strArray = (strArray);
}
public static void displayStrings(){
for (String s: strArray){
if (!(s == null)){
(s);
}
}
}
public static void searchArray(){
Scanner input = new Scanner();
("What string do you want to search the array for?");
String userInput;
userInput = ();
ArrayList stringList = new ArrayList((strArray));
if ((userInput)){
("The string array contains that string!");
}
else {
("The string array does not contain that string...");
}
}
public static void sortArray(){
/*ArrayList stringList = new ArrayList ((strArray));
(stringList);
strArray = (strArray);*/
/*for (String s: strArray) {
if (!(s == null)){
(strArray);
}
}*/
List stringList = new ArrayList((strArray));
(stringList);
strArray = (strArray);
//(strArray);
}
}