允许用户使用字符串数组.他们可以向数组添加字符串,从数组中删除字符串,搜索数组中的字符串,最终他们将能够对数组进行排序.分类是搞砸我的原因.我尝试过几种不同的方法.第一种方法是将数组转换为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中对字符串数组进行排序相关推荐

  1. python3字符串截取_从python3中的字符串中获取特定文本

    只是使用 str.split() 和赋值给变量,还有一个默认的第二个参数可以帮助您处理唯一的total/free avail场景 def get_free_memory(ssh_obj, raw=Tr ...

  2. java coin介绍_代码示例中的Java 7:Project Coin

    java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...

  3. 一起初学java,笔记记录的第五天:数组、排序和查找

    一起初学java,笔记记录的第五天:数组.排序和查找 适用于初学java者 这个首先指出本文中图片和资源来自**韩顺平**老师,感谢老师做的无私奉献的教学! 1. 数组介绍 数组可以存放多个同一类型的 ...

  4. Java怎么查找字符串大写_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...

    本问题已经有最佳答案,请猛点这里访问. 我有两个String s,str1和str2. 如何检查str1是否包含在str1中,忽略大小写? indexOf和contains都是逐个字符的,所以如果你需 ...

  5. java输入一串字符串反转_反转Java中的字符串

    java输入一串字符串反转 Reverse a String in java is a good coding related interview question. I have seen inte ...

  6. java 字符串驻留_【Java中的字符串驻留】

    最近在工作的时候,一句再正常不过的代码String a = "hello" + "world";被改成了new StringBuilder().append(& ...

  7. java输入数字_在java中,如何从键盘中输入数字,字符,字符串

    java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象. 常用的类有BufferedReader,Scanner. 实例程序: 一,利用 Scanner 实现从键盘读入inte ...

  8. java 空格转义字符_使用java中的空格对字符串进行标记

    假设: 您的变量名称(赋值'a = b'中的'a')的长度可以是1或更长 您的变量名称(赋值'a = b'中的'a')不能包含空格字符,其他任何东西都可以. 不需要验证您的输入(输入假定为有效的a = ...

  9. java 乱码 号处理器_java处理中日文字符串的乱码问题

    --杂言:前段时间在处理音频预览问题,详见关于audiojs的研究.期间,将远端的音频下载并缓存在本地过程中,涉及到java.io.*的几个操作,发生一些乱码问题. 我以前的处理是将本地的编码转换为U ...

最新文章

  1. 【Python】for 循环次数
  2. 饲料企业精细化生产管理方案
  3. UVa 10188 - Automated Judge Script
  4. 非常不错的MySQL优化的8条经验
  5. Animation Studio插件怎么用?Nitrozme Animation Studio Packages Mac(AE插件拓展包) 安装教程
  6. 安装成功后python报错_python安装Graphviz后报错及解决方法
  7. 帧中继更具体配置信息
  8. MFC 教程【5_MFC对象的创建】
  9. 阅读Java程序_几道java程序阅读题 不知道能不能用到 给大家分享一下
  10. 生成树协议计算机网络,【图片】生成树协议奇怪!我错哪了两边都绿了呀【计算机网络吧】_百度贴吧...
  11. Linx下静默方式安装weblogic
  12. 电商生鲜网站开发(接口文档)
  13. Html实现Excel锁定表头效果
  14. Hadoop基础组件思维导图
  15. 《Microsoft Word》进阶技巧:如何设置文档视图
  16. java.lang.IllegalStateException: focus search returned a view that wasn‘t able to take focus!
  17. std::packaged_task 源码分析
  18. 独木舟上的旅行-OJ
  19. php加密的是什么,看看下面这个php代码是使用什么加密的?
  20. 客制化键盘编程_最全最细客制化键盘指南!(上)

热门文章

  1. POJ1003/1004/1005/1207/3299/2159/1083/3094/2388解题(刷一波水题)
  2. postforobject 设置代理_Spring RestTemplate和代理身份验证
  3. 修改dts后重编译_「正点原子FPGA连载」第二十章另一种方式编译ZYNQ镜像
  4. java oracle 分区查询_深入学习Oracle分区表及分区索引
  5. Educational Codeforces Round 103 (Rated for Div. 2)A~E解题报告
  6. php实现数字滚动效果,vue如何实现数字滚动增加效果?代码示例
  7. 解决mysql导数据时,格式不对、导入慢、丢数据的问题
  8. 学完文本知识,我就直接看懂图片了!
  9. 开源开放 | 图数据交互可视化分析框架 InteractiveGraph v0.3 版本发布
  10. 综述 | 知识图谱实体链接:一份“由浅入深”的综述