Java 如何编写无长度的数组
我试图写一个程序,在数组中寻找三个数字,给出一个长度为三的算术序列——三个数字a、b和c组成一个长度为3的算术序列,如果:b-a=c-b 我有两个问题: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=
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");
}
}
}
}
}
}