简体   繁体   English

仅打印填充数组位置| While循环中的Java

[英]Printing Only Filled Array Places | Java in While Loop

I recenlty started to learn JAVA programming. 我开始学习Java编程。 I am using BlueJ compiler. 我正在使用BlueJ编译器。 Can anyone tell me or give me a hint, how to make "System.out.println" not print out empty array values (I mean Null) values if array is not filled compleatly. 任何人都可以告诉我或给我一个提示,如果未完全填充数组,如何使“ System.out.println”不打印出空数组值(我的意思是Null)。

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("");

   }

}

} }

Can anyone tell me or give me a hint, how to make "System.out.println" not print out empty array values 谁能告诉我或给我些提示,如何使“ System.out.println”不打印出空数组值

You test, whether the value at the index position is null and only print, if not null. 您测试索引位置的值是否为null,如果不为null,则仅打印。 You need to consider, that the rest of your code, especially your counters a, b and c are outside of this condition. 您需要考虑,其余代码,尤其是计数器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("");
   }

I am not sure where in your code you want to use this but is like this, in side you loop just check if you loop variable is not equal to null. 我不确定要在代码中的哪个位置使用它,但是就像这样,在循环中,只需检查循环变量是否不等于null即可。 Ex: 例如:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM