Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 可变数组长度内部方法_Java_Arrays - Fatal编程技术网

Java 可变数组长度内部方法

Java 可变数组长度内部方法,java,arrays,Java,Arrays,我需要解决一个练习,如下所示: 用户开始向数组中添加整数 当他想停止添加数字时,他应该键入-1 键入-1后,将显示一条消息,其中显示添加的数字,以及这些数字的计数 所以如果他输入:1869-1 结果将是: 输入的数字为:1869-1,计数为5 我试着写代码: import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is pu

我需要解决一个练习,如下所示:

  • 用户开始向数组中添加整数
  • 当他想停止添加数字时,他应该键入
    -1
  • 键入
    -1
    后,将显示一条消息,其中显示添加的数字,以及这些数字的
    计数
  • 所以如果他输入:
    1869-1

    结果将是:

    输入的数字为:
    1869-1
    ,计数为
    5

    我试着写代码:

    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    /* Name of the class has to be "Main" only if the class is public. */
    class exercice
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            readNumbers();
        }
    //No parameters inside: just readNubers()
        public static void readNumbers()
        {
            int[] num = new int[n];
            int x = 0;
            while(x!=-1)
            {
                for(int i=0; i<n; i++)
                {
                    System.out.println("Enter a number");
                    Scanner scan = new Scanner(System.out);
                    x = scan.nextInt();
                    num[i]=x;
                }
            }
            for(int j = 0; j<num.length; i++)
            {
                System.out.println(num[i]);
                System.out.println("The total of entered numbers is: "+num.length);
            }
        }
    }
    
    import java.util.*;
    导入java.lang.*;
    导入java.io.*;
    /*只有当类是公共的时,类的名称才必须是“Main”*/
    课堂练习
    {
    公共静态void main(字符串[]args)引发java.lang.Exception
    {
    readNumbers();
    }
    //里面没有参数:只有readNubers()
    公共静态void readNumbers()
    {
    int[]num=新的int[n];
    int x=0;
    而(x!=-1)
    {
    对于(int i=0;i
    在我们的课程中,我们有一个例子,我们可以定义一个长度未知的数组,如下所示:

    方法名(int…a),但不知道如何使用它

    这在这里是不适用的:即使在这种情况下,实际数组大小也必须在编译时知道。当调用varargs方法时,您总是知道数组的实际大小(或者您正在传入一个数组对象,该数组对象的大小在其他地方)

    如果你不能使用
    ArrayList
    ,你必须重新设计它:你必须手动创建一个较大的数组,然后将小数组的内容复制到较大的数组中。这就是ArrayList内部所做的。(或者,你可以从一个大数组开始,只填充其中的一部分,然后选择你需要的部分。)

    所有Java数组在创建时都有固定的大小

    在我们的课程中,我们有一个例子,我们可以定义一个长度未知的数组,如下所示:

    方法名(int…a),但不知道如何使用它

    这在这里是不适用的:即使在这种情况下,实际数组大小也必须在编译时知道。当调用varargs方法时,您总是知道数组的实际大小(或者您正在传入一个数组对象,该数组对象的大小在其他地方)

    如果你不能使用
    ArrayList
    ,你必须重新设计它:你必须手动创建一个较大的数组,然后将小数组的内容复制到较大的数组中。这就是ArrayList内部所做的。(或者,你可以从一个大数组开始,只填充其中的一部分,然后选择你需要的部分。)


    所有Java数组在创建时都有固定的大小。

    如果不能使用列表,您可以选择:

  • 定义一个非常大的数组,并根据需要填充尽可能多的数组
  • 当数组已满时,创建一个新的数组并跨多个数组复制内容

  • 当然,您也可以在运行时构造列出数字的字符串,而不将它们存储在数组中。

    如果您不能使用列表,您可以选择:

  • 定义一个非常大的数组,并根据需要填充尽可能多的数组
  • 当数组已满时,创建一个新的数组并跨多个数组复制内容

  • 当然,您也可以在运行时构造一个列有数字的字符串,而不将它们存储在数组中。

    我没有阅读“我需要解决一个练习”的部分,也没有为给出完整的解决方案而道歉。我在开头添加了一些提示,在结尾添加了一个扰流板警报

    您可以将数字存储在字符串变量中,用空格分隔。然后,您可以将其拆分为字符串数组。最后,设置int数组大小以匹配字符串数组,并将数据解析为该数组

    完整解决方案: 以下是将数字存储到int数组中的代码:

    Scanner input = new Scanner(System.in);
    
    System.out.print("Please enter the numbers: ");
    int nextNum = 0;
    String nums = "";
    do{
        nextNum = input.nextInt();
        nums += nextNum + " ";
    }while(nextNum != -1);
    
    String[] nums2 = nums.split(" ");
    int[] x = new int[nums2.length];
    
    for(int i = 0; i < nums2.length; i++)
        x[i] = Integer.parseInt(nums2[i]);
    
    扫描仪输入=新扫描仪(System.in);
    系统输出打印(“请输入数字:”);
    int nextNum=0;
    字符串nums=“”;
    做{
    nextNum=input.nextInt();
    nums+=nextNum+“”;
    }而(nextNum!=-1);
    字符串[]nums2=nums.split(“”);
    int[]x=新的int[nums2.length];
    for(int i=0;i
    现在您有了一个包含用户输入的所有数字的数组(x)。所发生的事情是将数字添加到字符串中,并用空格分隔。然后,在用户输入-1后,字符串转换为字符串数组。最后,它从字符串数组的每个元素解析int,并将其放入自己的int数组元素中


    希望这有帮助!

    我没有读到“我需要解决一个练习”的部分,也没有为给出完整的解决方案而道歉。我在开头添加了一些提示,在结尾添加了一个剧透警告

    您可以将数字存储在字符串变量中,用空格分隔。然后,您可以将其拆分为字符串数组。最后,设置int数组大小以匹配字符串数组,并将数据解析为该数组

    完整解决方案: 以下是将数字存储到int数组中的代码:

    Scanner input = new Scanner(System.in);
    
    System.out.print("Please enter the numbers: ");
    int nextNum = 0;
    String nums = "";
    do{
        nextNum = input.nextInt();
        nums += nextNum + " ";
    }while(nextNum != -1);
    
    String[] nums2 = nums.split(" ");
    int[] x = new int[nums2.length];
    
    for(int i = 0; i < nums2.length; i++)
        x[i] = Integer.parseInt(nums2[i]);
    
    扫描仪输入=新扫描仪(System.in);
    系统输出打印(“请输入数字:”);
    int nextNum=0;
    字符串nums=“”;
    做{
    nextNum=input.nextInt();
    nums+=nextNum+“”;
    }而(nextNum!=-1);
    字符串[]nums2=nums.split(“”);
    int[]x=新的int[nums2.length];
    for(int i=0;i
    现在您有了一个包含用户输入的所有数字的数组(x)。所发生的事情是将数字添加到字符串中,并用空格分隔。然后,在用户输入-1后,字符串转换为字符串数组。最后,它从字符串数组的每个元素解析int,并将其放入自己的int数组元素中


    希望这有帮助!

    您不能定义可变长度数组。您必须猜测数组的大小,然后根据需要制作一个调整大小的数组(并复制)。正确的方法是只使用
    ArrayList
    ,它会自动为您处理所有这些。我有一个递归的想法