我们如何将字符串数组的值与字符串进行比较? (Java)

时间:2018-09-18 14:27:07

标签: java arrays comparison

我想知道是否可以将字符串数组值与字符串进行比较,例如;我有一个String数组,上面有5个值。 String [] sampleArray = {"a","b","a","b","a"},并且我想知道哪个索引值具有ab。我想到了一个主意,但这没用。

String[] sampleArray = {"a","b","a","b","a"};
String value;
for (int i=0; i <= sampleArray.length; i++){
  if ( sampleArray[i].equals("a") ) {
    value = "apple";
  } else {
    value = "ball";
  }
  System.out.println(value);
}

基本上,如果index 0a,则应该打印“ Apple”,如果是b,则应该打印“ ball”,依此类推。有什么想法将值或字符串数​​组与字符串进行比较吗?

1 个答案:

答案 0 :(得分:2)

如果收到您的问题,您正在尝试查看sampleArray[0]是否等于“ a”。

您的代码确实比较了数组的第一个索引,但是没有保留比较结果。

原因是您的变量value会更改每个循环。最后,我想您是在控制台中得到的:

apple

但是您的value变量的此值是最后一个索引sampleArray[4]和“ a”的比较结果。 在您的代码中,value的值在下一次比较时在每个循环中都被擦除,最后,您仅获得最后一个值。

如果您想获得类似

的结果
apple
ball
apple
ball
apple

您需要像这样在每个循环中打印结果:

for (int i=0; i < sampleArray.length; i++){
     if ( sampleArray[i].equals("a") ) {
        System.out.println("apple");
     } else {
        System.out.println("ball");
     }
}

请注意此处sampleArray.length等于5,但是大多数编程语言中的索引从 0到length-1 。 因此i <= sampleArray.length可能会抛出ArrayIndexOutOfBoundsException

希望它能回答您的问题。