Java:如何判断我的一个数组String值是否为null?

时间:2014-04-27 09:10:18

标签: java arrays sorting

在尝试按字母顺序排序数组失败后,我意识到我的失败很可能是因为我的一个String数组值为null。我试过了Arrays.sort()& compareTo(),很像这个用户:    How to sort a String array alphabetically (without using compareTo or Arrays.sort)

...具有相同的结果,很可能指向我的一个值为null。如何判断我的某个值是否为空?有测试吗?怎么会变成空?最重要的是,这是否是正确的问题?感谢。

     String[] titleChoice = new String[5];
     String title = "", titleString = "";
     String[] authorChoice = new String[5];
     String author = "", authorString = "";
     int[] pageChoice = new int[5];
     String page = "", pageInt = "";
     String currentTitle;
     String currentPage = "";
     String formatEntry;

     int x = 0;
     int numEntered;

     int highestTitle = titleChoice.length - 1;
     int highestAuthor = authorChoice.length - 1;
     int highestPage = pageChoice.length - 1;

     final int MAX_ARRAY_SIZE = 5;

     boolean notQuit = true;

           Arrays.fill(titleChoice, "zzzzzzzzzzz");
           Arrays.fill(authorChoice, "zzzzzzzzzzz");
           Arrays.fill(pageChoice, 99999999);

     Scanner input = new Scanner(System.in);

     do
        {

        System.out.print("Enter the title of a book, or zzz to quit:");
           titleChoice[x] = input.next();

        if(!titleChoice.equals("zzz"))
           {
           LibraryBook inputBook = new LibraryBook();
           inputBook.setBook(titleChoice[x]);

           LibraryBook inputAuthor = new LibraryBook();
           System.out.print("Please enter " + titleChoice[x] + "'s author's last name: ");
              authorChoice[x] = input.next();
           inputAuthor.setAuthor(authorChoice[x]);

           LibraryBook inputPages = new LibraryBook();
           System.out.println("Please enter " + titleChoice[x] + "'s page count: ");
              pageChoice[x] = input.nextInt();
           inputPages.setPages(pageChoice[x]);

           x = x + 1;
           }
           else
              System.out.println("You have elected to quit the program. Goodbye.");
        }
     while(((!titleChoice.equals("zzz")) && x < 5) && ((!authorChoice.equals("zzz")) && x < 5)     
         && ((!pageChoice.equals("zzz")) && x < 5));

    //I just put this in here to see if it would compile
    Arrays.sort(titleChoice[x]); }}

1 个答案:

答案 0 :(得分:2)

  

如何判断我的某个值是否为空?

一种方法是学习读取你正在获得的堆栈跟踪。 (如果你向我们展示,我们可能会帮助你。)

另一种方法是测试值以查看它是否为空。

  

有测试吗?

以下是测试简单变量的方法。

    if (a == null) {
         System.out.println("a is null");
    }

如果你有一个元素可能是null的数组,写一个循环来测试它们。 (有更优雅的方式......但如果你正在学习,请保持简单。)

  

它是如何变为空的?

这两种方式是:

  • 您已为其分配了null
  • 开始时为null,您尚未为其分配非空值。例如,new String[5];创建一个新的String数组,其值最初为null
  

最重要的是,这是否是正确的问题?

我们无法告诉您&#34;正确&#34;问题是,因为这取决于你的精神状态......我们无法读懂你的想法。