2016-03-08 76 views
1

我recenlty开始学习JAVA编程。我正在使用BlueJ编译器。 任何人都可以告诉我或给我一个提示,如果数组没有完全填充,如何使“System.out.println”不打印出空数组值(我的意思是空值)。仅打印填充阵列位置|在While循环中的Java

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

    } 

} 

}

+0

'如果(!变量= NULL){do_something;}'' –

+1

Country.equals( “空”)'你可能想查找如何检查,如果事情是空第一! – tnw

+0

请不要忽略java的命名约定。你的代码很难理解。 – callOfCode

回答

2

谁能告诉我或者给我一个提示,如何让 “的System.out.println” 没有打印出空数组值

你的测试,索引位置的值是否为空,并且仅打印(如果不为空)。你需要考虑的是,你的代码的其余部分,特别是你的计数器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(""); 
    } 
+0

非常感谢你的队友! – Helvijs

0

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

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