I'm Getting The Error: 'void' type not allowed here
I'm Getting The Error: 'void' type not allowed here
public static void displayMenu(String[] name, double[] price) {
int i = 0;
double pr = 0;
System.out.println("Welcome to our store, we have the following. Please enter what you would like: ");
for (int j = 0; j < name.length; j++) {
pr = price[j];
System.out.println((j + 1) + " - for " + name[j] + " (" + pr + ")");
}
System.out.println("0 - for checkout");
}
capitalize(name) 是一个 void 方法,它将字符串数组作为参数。
public static void capitalize(String[] name) {
String s = "";
for (int i = 0; i < name.length; i++) {
s = name[i];
s = s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase();
System.out.println(s);
}
}
我想使用字符串数组的 "upper/lower cased" 版本,但出现错误:
error: 'void' type not allowed here
System.out.println((j + 1) + " - for " + capitalize(name) + " (" + pr + ")");
^
我该怎么办?
*注意 = 必须使用 void 方法完成。
我原来的回答确实是错误的。如果你需要到return无效,而不是打印它,替换数组(或创建一个包含大写字符串的新数组):
public void capitalize(String[] name) {
String s = "";
for (int i = 0; i < name.length; i++) {
s = name[i];
s = s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase();
name[i] = s;
}
}
然后,在您的 print 语句中,打印出 name[j](或者您对新数组的任何称呼,如果您想保留原始数组)。
您正在尝试打印不允许的 void 方法的结果。如果你不能改变方法的类型,那么让方法修改一个实例变量(它可以是一个像你一样的数组)并打印那个变量(数组)。您甚至可以在每次迭代后在 void 方法中打印值。
假设您的实例变量是这个 String[] name
。那么你可以这样做:
for (int j = 0; j < name.length; j++) {
pr = price[j];
capitalize(name);
System.out.println((j + 1) + " - for " + name[j] + " (" + pr + ")");
}
你的大写方法:
for (int i = 0; i < name.length; i++) {
this.name[i] = name[i].substring(0,1).toUpperCase() + name[i].substring(1).toLowerCase();
System.out.println(this.name[i]); //this is optional if you're okay with printing here instead of where the capitalize method gets called
}
public static void displayMenu(String[] name, double[] price) {
int i = 0;
double pr = 0;
System.out.println("Welcome to our store, we have the following. Please enter what you would like: ");
for (int j = 0; j < name.length; j++) {
pr = price[j];
System.out.println((j + 1) + " - for " + name[j] + " (" + pr + ")");
}
System.out.println("0 - for checkout");
}
capitalize(name) 是一个 void 方法,它将字符串数组作为参数。
public static void capitalize(String[] name) {
String s = "";
for (int i = 0; i < name.length; i++) {
s = name[i];
s = s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase();
System.out.println(s);
}
}
我想使用字符串数组的 "upper/lower cased" 版本,但出现错误:
error: 'void' type not allowed here
System.out.println((j + 1) + " - for " + capitalize(name) + " (" + pr + ")");
^
我该怎么办? *注意 = 必须使用 void 方法完成。
我原来的回答确实是错误的。如果你需要到return无效,而不是打印它,替换数组(或创建一个包含大写字符串的新数组):
public void capitalize(String[] name) {
String s = "";
for (int i = 0; i < name.length; i++) {
s = name[i];
s = s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase();
name[i] = s;
}
}
然后,在您的 print 语句中,打印出 name[j](或者您对新数组的任何称呼,如果您想保留原始数组)。
您正在尝试打印不允许的 void 方法的结果。如果你不能改变方法的类型,那么让方法修改一个实例变量(它可以是一个像你一样的数组)并打印那个变量(数组)。您甚至可以在每次迭代后在 void 方法中打印值。
假设您的实例变量是这个 String[] name
。那么你可以这样做:
for (int j = 0; j < name.length; j++) {
pr = price[j];
capitalize(name);
System.out.println((j + 1) + " - for " + name[j] + " (" + pr + ")");
}
你的大写方法:
for (int i = 0; i < name.length; i++) {
this.name[i] = name[i].substring(0,1).toUpperCase() + name[i].substring(1).toLowerCase();
System.out.println(this.name[i]); //this is optional if you're okay with printing here instead of where the capitalize method gets called
}