Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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_Methods - Fatal编程技术网

Java 为什么我的代码没有运行,也没有提示我输入?

Java 为什么我的代码没有运行,也没有提示我输入?,java,arrays,methods,Java,Arrays,Methods,我想创建一个Java代码,当接收到任意大小的数组时,它会返回同一数组的一个版本,并且删除数组中的所有7。剩余的元素应根据需要向左移动到数组的开头,数组末尾的空格应为0。 我试图为数组的输入创建一个方法,如果需要,可以扩展数组大小;我用于输入的代码如下: static Scanner in = new Scanner(System.in); public static int[] userInput() { int[] inputs = new int[5]; i

我想创建一个Java代码,当接收到任意大小的数组时,它会返回同一数组的一个版本,并且删除数组中的所有7。剩余的元素应根据需要向左移动到数组的开头,数组末尾的空格应为0。 我试图为数组的输入创建一个方法,如果需要,可以扩展数组大小;我用于输入的代码如下:

static Scanner in = new Scanner(System.in);
public static int[] userInput() {

        int[] inputs = new int[5];
        int currentSize = 0;
        while (in.hasNextInt())
        { 
           if (currentSize > inputs.length)
           {
              inputs = Arrays.copyOf(inputs, 2 * inputs.length);
           }
          
           inputs[currentSize] = in.nextInt();
           currentSize++;
        }
        inputs = Arrays.copyOf(inputs, currentSize);
        return inputs;
    }

但是,;当我运行代码时,不会发生任何事情,也不会提示我输入。有人能帮我吗?

您的代码运行成功。您是否编写了执行该静态方法的代码

这是您的代码的一个稍加修改的版本

我移动了
扫描仪
,尝试使用资源自动关闭它。养成关闭你打开的资源的习惯。任何实现
AutoCloseable
的资源都可以在资源试用中使用

为了清楚起见,我改了一些名字

import java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
System.out.println(“运行”);
int[]input=Ideone.userInput();
System.out.println(数组.toString(输入));
}
公共静态int[]userInput(){
试一试(
扫描仪=新扫描仪(System.in);
) {
int[]输入=新的int[5];
int currentSize=0;
while(scanner.hasNextInt())
{ 
如果(currentSize>inputs.length)
{
输入=数组.copyOf(输入,2*输入.长度);
}
输入[currentSize]=scanner.nextInt();
currentSize++;
}
输入=数组.copyOf(输入,当前大小);
返回输入;
}
}
}
看这个

对于这些输入:

7
42
出口
…我们得到以下输出:

正在运行
[7, 42]
ArrayList
如果使用
列表
,例如
ArrayList
,而不是数组,则代码会简单得多。
ArrayList
在内部处理大小调整,我们不做任何努力

如果您正在学习如何操作数组,那就非常好了。或者,如果您有大量数据,请使用阵列,因为它们执行速度更快,而占用的内存更少。但对于日常编程,请使用集合框架,如
List


/*打包任何东西;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
System.out.println(“运行”);
Listinputs=Ideone.userInput();
系统输出打印项次(输入);
}
公共静态列表userInput(){
试一试(
扫描仪=新扫描仪(System.in);
) {
Listinputs=newarraylist();
while(scanner.hasNextInt())
{ 
inputs.add(scanner.nextInt());
}
返回列表。副本(输入);
}
}
}
看这个

要删除七的任何值,请调用
removeAll

boolean oneOrMoreRemoved = inputs.removeAll( List.of( Integer.valueOf( 7 ) ) ) ;

糟糕的标题。重写以总结您的具体技术问题。