gpt4 book ai didi

java - 使用 while 循环迭代字符串数组并获取位置 java

转载 作者:行者123 更新时间:2023-12-02 05:48:14 25 4
gpt4 key购买 nike

我有一个字符串数组,这些字符串是艺术家,当用户在控制台中键入其中一个字符串时,我希望它打印出该字符串在数组中的位置;所以这是我现在的代码

String artist;
int location = 0;
String currentArtist;
String [] myArray = {"Rihanna",
"Cheryl Cole",
"Alexis Jordan",
"Katy Perry",
"Bruno Mars",
"Cee Lo Green",
"Mike Posner",
"Nelly",
"Duck Sauce",
"The Saturdays"};

System.out.println("Please enter an artists name: ");
Scanner scanner = new Scanner(System.in);

artist = scanner.next();

while (location < myArray.length) {
location++;
currentArtist = myArray[location];
if (artist == currentArtist) {
System.out.println(location);
}
}

但是当我运行它并输入名称时,出现以下错误;

线程“main”中出现异常 java.lang.ArrayIndexOutOfBoundsException: 10 在chartposition.ChartPosition.main(ChartPosition.java:26)Java 结果:1

第 26 行是这个;

currentArtist = myArray[location];

我不确定我实际上哪里出了问题,所以任何帮助将不胜感激。提前致谢!

编辑 1

我已经改变了 if 语句;

if (artist == currentArtist) {
System.out.println(location);
}

对此;

if (artist.equals(currentArtist)) {
System.out.println(location);
}

它现在打印出字符串在数组中的位置,但仍然得到相同的错误

最佳答案

您太早增加了计数器,因为在最后一次迭代中它的值为 myArray.length

location++ 移至循环末尾,或使用 for 循环

关于java - 使用 while 循环迭代字符串数组并获取位置 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23839593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com