我不知道为什么会出现此运行时错误。 Java告诉我第17行是问题。
import java.util.Scanner;
public class whatIsWrong {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int size = 0;
String[] names;
names = new String[size];
System.out.printf("%nEnter number of names desired names: ");
size = input.nextInt();
for(int i = 0; i < size; i++) {
System.out.printf("%nName #%d: ", i +1);
names[i] = input.nextLine();
}
}
}
答案 0 :(得分:1)
当前的问题很容易,就是初始化大小为average
的数组。在for循环中,您将获得新的大小,因此数组长度不等于该大小。
您需要在0
行之后初始化数组。
所以它应该像这样:
size = input.nextInt()
答案 1 :(得分:0)
简而言之:
更改 <SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><v23:ProcessShipmentReplyxmlns:v23="http://fedex.com/ws/ship/v23"><v23:HighestSeverityxmlns:v23="http://fedex.com/ws/ship/v23">ERROR</v23:HighestSeverity><v23:Notificationsxmlns:v23="http://fedex.com/ws/ship/v23"><v23:Severityxmlns:v23="http://fedex.com/ws/ship/v23">ERROR</v23:Severity><v23:Sourcexmlns:v23="http://fedex.com/ws/ship/v23">prof</v23:Source><v23:Codexmlns:v23="http://fedex.com/ws/ship/v23">1000</v23:Code><v23:Messagexmlns:v23="http://fedex.com/ws/ship/v23">AuthenticationFailed</v23:Message></v23:Notifications><v23:Versionxmlns:v23="http://fedex.com/ws/ship/v23"><v23:ServiceIdxmlns:v23="http://fedex.com/ws/ship/v23">ship</v23:ServiceId><v23:Majorxmlns:v23="http://fedex.com/ws/ship/v23">23</v23:Major><v23:Intermediatexmlns:v23="http://fedex.com/ws/ship/v23">0</v23:Intermediate><v23:Minorxmlns:v23="http://fedex.com/ws/ship/v23">0</v23:Minor></v23:Version></v23:ProcessShipmentReply></SOAP-ENV:Body></SOAP-ENV:Envelope>
的值不会影响数组size
的大小,即names
。
详细说明:
执行0
时,size的值为names = new String[size];
,因此即使0
被更改,字符串数组names
的大小仍为0
。之后,将不会更改size
的大小。因此它是一个空数组。通过在names
循环的第一轮访问names[0]
,您假设它至少有一个元素。