关于通信录问题,请高手进来看一下
出现的问题如下:  
1.在增加方法中,执行第二次增加操作时,会出现两个“请输入:”。  
2.在增加方法中,如果改为 list[n][j] = in.nextLine();   应按怎样格式输入才正确?  
3.在修改方法中, 执行到“请输入:”这一步时,还没等你输入就返回到主菜单。  
我用的是Eclipse,暂时发现这个程序有这3个问题。请教高手这3个问题应如何解决,顺便看一下程序设计上有何不妥之处,  
我学JAVA才一个多月,所以请多多指正。  
源程序如下:
[code=Java][/code]
import java.util.*;
public class List
{
	String[][] list =  
     {  
         {"01", "AAA", "男", "123456", "北京"},
         {"02", "BBB", "女", "456789", "福建"},
         {"03", "CCC", "男", "333333", "广东"},
         {" ", " ", " ", " ", " "},
         {" ", " ", " ", " ", " "}
      };	
	 public void start()  //主菜单
	 {
           while(true)
	      {
		      System.out.println("1.查询\n" + "2.增加\n" + "3.修改\n" + "4.删除\n" +"5.退出");
		      System.out.print("请输入操作(1-5):  ");
		      int ch = in.nextInt();
		      switch(ch)
		      {
		         case 1:  query();
		                break;
		         case 2:  add();
		                break;
		         case 3:   modify();
		                break;
		         case 4:   remove();
		                break;
		         case 5:   exit();
		                break;
		       }
	        }
	 }
	 public void display()  //每一次操作后都显示一遍
	 {
		 System.out.println("编号" + " " + "姓名" + " " + "性别" + " " + "电话" + " " +
	     "地址" );
		 for(int i = 0; i < list.length; i++)
		 {
			 for(int j = 0; j < list[i].length; j++)
			 {
				 System.out.print(list[i][j] + "  ");
			 }
			 System.out.println();
		 }
	 }	  	
      public void query() //查询
      {
   	      System.out.println("请输入你想查询的编号(1、2、3……):   ");
  		  int j = in.nextInt();  		   
  		  if(j > list.length || list[j - 1][0] == " ")
  		  {
  			  System.out.println("无此信息");
  			  query();
  		   }
  		  else
  		  {
  			 System.out.println("你想查询的信息在第" + j + "行");
  			 display();
  			 return;
  		  }		   
	  }       
      public void add()  //增加
      {
     	if(n > 4)
     	{
     		System.out.println("通信录已满");
     		return;
     	}
     	System.out.print("请输入:");
     	if(list[n][0] == " ")
         {     		
     		 for(int j = 0; j < 5; j++)
     		 {     			  
     			 list[n][j] = in.next();  //空格为分隔符
     			 if(j == 4)
     			 {
     				 System.out.println("增加成功!");
     				 display();
     			 }     			  
     		 }     		  
         }
     	else  
     	{
     		n++;
     		add();
     	}     	 	       		
     }       
      public void modify()  //修改
      {
     	 System.out.print("请输入你想要修改的编号(1、2、3……):");
     	 int i = in.nextInt();
     	 System.out.println("1:姓名");
  		 System.out.println("2:性别");
  		 System.out.println("3:电话");