仅打印填充的阵列位置| Java循环中的Java

时间:2016-03-08 20:42:50

标签: java arrays

我重新开始学习JAVA编程。我正在使用BlueJ编译器。 任何人都可以告诉我或给我一个提示,如何制作" System.out.println"如果未完全填充数组,则不会打印出空数组值(我的意思是空值)。

static String [] Country = new String [15];

static String [] City = new String [15];

static String [] Region = new String [15];
static Scanner sc = new Scanner(System.in);
static int x = 0, y = 0, z = 0;
static int a = 0, b=0,c=0, t=0;

public static void main (String [] args)
{
    String entry = "-1";
    while( !entry.equals ("4")){ 
    menu();
     entry = sc.nextLine();
    if(!entry.equals("1") && (!entry.equals("2")) && (!entry.equals ("3")) && (!entry.equals ("4") && !entry.equals("-1"))) 
     { JOptionPane.showMessageDialog(null, "Please Enter Numbers as shown in 'MENU LIST'");
        }
    if (entry.equals ("1")) {
        System.out.println("\f");
        AddCity();
    }
    if (entry.equals("2")) {
        System.out.println("\f");
        Search();
    }
    if (entry.equals("3")) {

        PrintAll();
    }
  }
  JOptionPane.showMessageDialog(null, "Have a nice day");
}

public static void menu()
{

    System.out.println("                   ---------------- Menu-----------------");
    System.out.println("                   Please Use Numbers ONLY from 1 - 4 ");
    System.out.println("                   1. Add new City");
    System.out.println("                   2. Search for a City.");
    System.out.println("                   3. Print All Cities.");
    System.out.println("                   4. QUIT.");                 
}

public static void AddCity()
{
    if(t >=13) {
        JOptionPane.showMessageDialog(null, "Database capacity is almost full.");
        PrintAll();
    }
    System.out.println("Please enter The name of Country.");
    Country [x]  = sc.nextLine();
    x++;
    System.out.println("Please enter the name of City.");
    City [y] = sc.nextLine();
    y++;
    System.out.println("Please enter the Region where the city is located.");
    Region [z] = sc.nextLine();
    z++;
    t++;
}

public static void Search()
{

}

public static void PrintAll()
{

    while (a <14)
    {
        if (!Country.equals("Null") ) {
          System.out.print("Country: ");
          System.out.print(Country[a]+ " | ");
          a++;
          while(b <(a)) {
            System.out.print("City: ");
             System.out.print(City[b]+ " | ");

             while(c<a) {
                System.out.print("Region: ");
                System.out.println(Region[c] + " | ");
                c++;
             }
            b++;
          }
          }
          System.out.println("");

   }

}

}

2 个答案:

答案 0 :(得分:2)

  

任何人都可以告诉我或给我一个提示,如何制作&#34; System.out.println&#34;   不打印出空数组值

测试索引位置的值是否为空且仅打印(如果不为null)。您需要考虑的是,其余代码,尤其是您的计数器a,b和c都不在此条件下。

    while (a <14)
    {
        if (!Country.equals("Null") && country[a] != null) {
          System.out.print("Country: ");
          System.out.print(Country[a]+ " | ");
          a++;
          while(b <(a)) {
             if(City[b]!=null) {
                System.out.print("City: ");
                System.out.print(City[b]+ " | ");
             }
             while(c<a) {
                if(Region[c]!=null) {
                   System.out.print("Region: ");
                   System.out.println(Region[c] + " | ");
                }
                c++;
             }
            b++;
          }
      }
          System.out.println("");
   }

答案 1 :(得分:0)

我不确定你的代码在哪里使用它但是就像这样,在你循环中只检查你是否循环变量不等于null。 例如:

if(variable != null) {
    //do something
}