数组不会接受用户指定的值

时间:2013-11-25 19:43:08

标签: java arrays

为什么我的stringArray不允许等于这段代码中的单词?我已经要求用户输入他们想要的单词,声明为String,然后我创建了一个类型为String的数组。这只是我的声明错了吗?

public class Lab8 {
  public static void main() {
    Scanner scan1 = new Scanner(System.in);
    System.out.println("Please enter a word to reverse:");
    String word = scan1.nextLine();

    String stackArray = new String[word];  
    //Stack stack1= new Stack();

    for (int i = 0; i < word.length(); i++) {
        stack1.push(word.substring(i,i++));
    }

    String strRev = "";
    while (!stack1.isEmpty()) {
        strRev += stack1.pop();
    }
    System.out.println("Reversed: " + strRev);
  }
}

4 个答案:

答案 0 :(得分:1)

String stackArray = new String[word]; 

这条线没有多大意义。要声明一个数组,我们在数组名后面使用[]。要指定大小,我们使用整数值,而不是字符串。 []可能在声明开头作为类型的一部分出现,或作为特定变量的声明者的一部分出现,或者两者兼而有之。

例如:声明int[] arr;int arr[];都将arr声明为整数数组。但是,像:

这样的清除声明
int[] arr1, arr2, arr3;

将所有arr1, arr2, arr3声明为整数数组。虽然声明如下:

int arr1[], arr2;

会将arr1[]声明为整数数组,将arr2声明为int变量。

但是,对于您的上下文,

String stackArray[] = new String[word.length()];

答案 1 :(得分:0)

试试这个:

    String stackArray[] = word.split(""); 

答案 2 :(得分:0)

这里有一些错误。

String word = scan1.nextLine();

int word_len = word.length();

String[] stackArray = new String[word_len];  

这应该有效。

编辑:提示o @ user2864740的上限

答案 3 :(得分:0)

你的数组构造错误(需要[]),同时推入for循环错误,你在多个地方递增i,会导致错误的结果。