为什么我的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);
}
}
答案 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
,会导致错误的结果。