这是我的代码,如果它是空的,我可以打印我的数组而不是零吗?
import java.util.Arrays;
import java.io.*;
public class Stacks{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("what is the size of your stack? :");
int size = Integer.parseInt (br.readLine());
int get = size;
int[] Array = new int[size];
System.out.println("type: push , pop , exit");
System.out.println("remember! you can EXIT anytime");
System.out.println(Arrays.toString(Array));
/*there still a code here but this is just what i needed to show..*/
}
}
请帮助我.. PS我不想导入堆栈..
答案 0 :(得分:1)
由于您没有将Array用作数组,而是最终作为堆栈使用,因此您不希望使用专为打印数组而设计的Arrays.toString()
作为数组。你需要编写自己的方法,记住你创建的堆栈可能小于你要填充的数组的大小。
在不知道如何实现堆栈的情况下,基本模型将是
public static String arrayAsStack(int[] array, int elements_in_stack) {
String out = "[";
for(int i=elements_in_stack-1; i>=0; i--)
out += arrary[i] + " ";
out+="]";
return out;
}
这种方法当然可能不正确,具体取决于格式化堆栈数组的方式。请注意elements_in_stack
应该从0开始。一旦为堆叠获得了正确的方法实现,您就可以以自然的方式打印结果。
答案 1 :(得分:0)
如果您只想在不使用零的情况下显示数组,则可以使用if语句。
for( int i = 0; i < Array.length; i ++ ){
if( Array[i] != 0 ){
System.out.print( Array[i] + " ");
}
}
这将遍历您的数组并测试值是否为零。如果不是,它将显示该值,如果是,则忽略它。
答案 2 :(得分:0)
而不是使用int类型我使用对象
创建它 import java.util.Arrays;
import java.io.*;
public class Stacks{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("what is the size of your stack? :");
int size = Integer.parseInt (br.readLine());
int get = size;
Object[] Array = new Object[size];
System.out.println("type: push , pop , exit");
System.out.println("remember! you can EXIT anytime");
/* here i use the code of Ryan*/
for( int i = 0; i < Array.length; i ++ ){
if( Array[i] != null ){
System.out.print( Array[i] + " ");
}
}
/*there still a code here but this is just what i needed to show..*/
}
}
现在如果输入它我可以显示0 ..