Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我不明白为什么数组[0]和[1]变为空_Java_Arrays - Fatal编程技术网

Java 我不明白为什么数组[0]和[1]变为空

Java 我不明白为什么数组[0]和[1]变为空,java,arrays,Java,Arrays,为什么主数组在一次while循环后变为null??当我运行程序时,一切都很完美,但在第二个循环中,创建新笔记和查看笔记,两者都将变为空 import java.util.Scanner; public class NoteIt { public static void main(String[]args) { Scanner s = new Scanner(System.in); int Answer; int i=2; System.out.p

为什么主数组在一次while循环后变为null??当我运行程序时,一切都很完美,但在第二个循环中,创建新笔记和查看笔记,两者都将变为空

import java.util.Scanner;

public class NoteIt {
  public static void main(String[]args) {

     Scanner s = new Scanner(System.in);
     int Answer;
     int i=2;

     System.out.print("\nPlease Enter your Name: ");
     String Name = s.nextLine();
     System.out.println("Welcome to Note-It "+Name+", We hope you'll enjoy our application. ");

     String[][] Main = new String[2][2];

     Main[0][0]="Create new Note";
     Main[1][0]="View My Notes";

     while(true) {

         System.out.println("\nPlease select what to do: \n");

         for (int n = 0; n < 2; n++) {
             System.out.println((n + 1) + ") " + Main[n][0]);
         }
        
         System.out.print("\nPlease enter your response: ");
         Answer = s.nextInt();

         if (Answer == 1) {
            i++;
            Main = new String[i][2];
            System.out.print("\nTitle: ");
            Main[i - 1][0] = s.next();
            System.out.print("Body: ");
            Main[i - 1][1] = s.next();
         } else if (Answer == 2) {
            for (int k = 2; k < i; k++) {
                System.out.println(k - 1 + Main[k][0]);
            }
        }
    }

  }
}
这里您创建了一个新数组

如果要调整阵列大小,有2个选项

使用java.util.ArrayList或java.util.Vector代替本机数组 或者创建一个新数组并将旧数据复制到新数组中
首先,检查二维阵列的工作方式。您已声明新字符串[2][2]。然后它工作于[0][0]、[0][1]、[1][0]、[1][1]


然后与您一起检查赋值点。

尝试此代码,并进行一些小的调整

Main = new String[i][2];

可能有一些元素不符合您的要求,请根据您的喜好进行更改。还修复了跳过正文的问题。

那么我该怎么做呢?如果要创建新数组,需要复制itI中的旧值,我不想创建新数组,但我想升级数组“Main”的维度。你能告诉我怎么做吗,兄弟。因为我对java非常陌生。
import java.util.Scanner;

public class Main {
  public static void main(String[]args) {

     Scanner s = new Scanner(System.in);
     int Answer;
     int i=1;

     System.out.print("\nPlease Enter your Name: ");
     String Name = s.nextLine();
     System.out.println("Welcome to Note-It "+Name+", We hope you'll enjoy our application. ");

     String[][] Main = new String[10][2];
    //String[] Main1 = new String[2];
     Main[0][0]="Create new Note";
     Main[0][1]="View My Notes";
      /**for( int j=0;j<2;j++ )
        Main[j]= new String[2];*/
     while(true) {

         System.out.println("\nPlease select what to do: \n");

         for (int n = 0; n < 2; n++) {
             System.out.println((n + 1) + ") " + Main[0][n]);
         }
        
         System.out.print("\nPlease enter your response: ");
         Answer = s.nextInt();
         s.nextLine();

         if (Answer == 1) {
            i++;
            
            System.out.print("\nTitle: ");
            Main[i - 1][0] = s.nextLine();
            System.out.print("Body: ");
            Main[i - 1][1] = s.nextLine();
         } else if (Answer == 2) {
            for (int k = 1; k <i; k++) {
                System.out.println(1 + Main[k][0]);
            }
        }
    }
    

  }
}