Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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 - Fatal编程技术网

Java 如何编写无长度的数组

Java 如何编写无长度的数组,java,Java,我试图写一个程序,在数组中寻找三个数字,给出一个长度为三的算术序列——三个数字a、b和c组成一个长度为3的算术序列,如果:b-a=c-b 我有两个问题: 我需要读取任意数字类型int,并将它们放入数组中。例如:java字符串3 4 5 6,给出数组:[3],[4],[5],[6]。 我不能这样做,因为创建数组时需要数组长度 我想我在为b-a=c-b编写数学命令时遇到了问题 publicstaticvoidmain(字符串[]args){ int[]a=新的int[10]; for(int i=

我试图写一个程序,在数组中寻找三个数字,给出一个长度为三的算术序列——三个数字a、b和c组成一个长度为3的算术序列,如果:b-a=c-b

我有两个问题:

  • 我需要读取任意数字类型int,并将它们放入数组中。例如:java字符串3 4 5 6,给出数组:[3],[4],[5],[6]。 我不能这样做,因为创建数组时需要数组长度

  • 我想我在为
    b-a=c-b
    编写数学命令时遇到了问题

  • publicstaticvoidmain(字符串[]args){
    int[]a=新的int[10];
    for(int i=0;true;i++){
    a[i]=Integer.parseInt(args[i]);
    }
    系统输出打印长度(a.长度);
    for(int i=0;i
    选项1——提前询问长度
    我不认为这个选项需要太多解释。它看起来像这样

    Scanner in = new Scanner(System.in);
    int length = in.nextInt();
    //... use "length" as you wish
    
    选项2——使用一个! 然后,您的代码看起来有点像这样:

    int inputNum = in.nextInt();
    ArrayList<Integer> a = new ArrayList<Integer>();
    while (inputNum != 1){
        a.add(inputNum);
    }
    //you can use "a" as you wish now
    
    int inputNum=in.nextInt();
    ArrayList a=新的ArrayList();
    while(inputNum!=1){
    a、 添加(inputNum);
    }
    //你现在可以随心所欲地使用“a”
    
    如评论中所述,使用ArrayList动态更改列表的大小。然后可以使用
    yourList.add()
    在需要时分配值。有关更多详细信息,请查看官方文件。

    对于第一个问题,从
    字符串创建整数数组已经有了大部分。您只是没有弄清楚
    args
    数组的大小是要分析的
    字符串
    值的数量。您已经知道如何使用t数组的
    length
    属性

    以下是我的解决方案:

    public class ThreeArithmeticSequence {
        public static void main(String[] args) {
    
            int[] a = new int[args.length];
            for (int i = 0; i < a.length; i++) {
                a[i] = Integer.parseInt(args[i]);
            }
    
            System.out.println(a.length);
            for (int i = 0; i < a.length - 2; i++) {
                for (int j = i + 1; j < a.length - 1; j++) {
                    int b = a[j];
                    for (int k = j + 1; k < a.length; k++) {
                        int c = a[k];
    
                        if (b - a[i] == c - b) {
                            System.out.println("yes");
                        }
                    }
                }
            }
        }
    }
    
    公共类三算术序列{
    公共静态void main(字符串[]args){
    int[]a=新的int[args.length];
    for(int i=0;i
    听起来你需要一个
    ArrayList
    你不需要在实例化数组时指定长度。
    int[]i={0}
    。对于第一个问题,请看一看。谢谢。但是对于示例:20 8 27 19 10 56 7 12 98,我们有长度为3(8-10-12)的序列,但它没有进入循环tho。啊,它是一个序列,但不是连续的。好的,没问题。将编辑答案。谢谢!但它仍然不起作用。例如:2082719105671298,它没有进入if命令。我尝试了很多方法,但仍然不起作用…对不起,愚蠢的打字。
    int c=a[k]
    你能提供一个
    Java
    链接吗?这个叫做
    dotnetperls
    public class ThreeArithmeticSequence {
        public static void main(String[] args) {
    
            int[] a = new int[args.length];
            for (int i = 0; i < a.length; i++) {
                a[i] = Integer.parseInt(args[i]);
            }
    
            System.out.println(a.length);
            for (int i = 0; i < a.length - 2; i++) {
                for (int j = i + 1; j < a.length - 1; j++) {
                    int b = a[j];
                    for (int k = j + 1; k < a.length; k++) {
                        int c = a[k];
    
                        if (b - a[i] == c - b) {
                            System.out.println("yes");
                        }
                    }
                }
            }
        }
    }