Java 为什么我的代码没有运行,也没有提示我输入?
我想创建一个Java代码,当接收到任意大小的数组时,它会返回同一数组的一个版本,并且删除数组中的所有7。剩余的元素应根据需要向左移动到数组的开头,数组末尾的空格应为0。 我试图为数组的输入创建一个方法,如果需要,可以扩展数组大小;我用于输入的代码如下: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
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 ) ) ) ;
糟糕的标题。重写以总结您的具体技术问题。