【问题标题】:How do we compare String Array value to a String? (Java) [closed]我们如何将字符串数组值与字符串进行比较? (Java)[关闭]
【发布时间】:2019-02-22 14:56:55
【问题描述】:

我想知道是否可以将字符串数组值与字符串进行比较,例如;我有一个字符串数组,上面有 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”等等。有没有办法将值或字符串数​​组与字符串进行比较?

【问题讨论】:

  • “我有一个 String 数组,上面有 5 个值。String [] sampleArray = {"a","b","a","b","a"} 我想知道我的第一个索引值是 a 还是 b。” if (sampleArray[0].equals("a"))` 这样做。循环有什么用?
  • 它没用 -> 也许你的意思是 "java.lang.ArrayIndexOutOfBoundsException: 5"?
  • @T.J.Crowder 抱歉,这是我在提问部分的错误。我想知道哪个索引具有哪个值,并知道那个“if 语句”是否有效。我编辑了问题。
  • @सृजनसृजन 您的代码已经在完成这项工作。您需要修复的是 for 循环定义中的条件语句:i ;

标签: java arrays comparison


【解决方案1】:

如果我收到您的问题,您正在尝试查看 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 &lt;= sampleArray.length 可能会抛出一个ArrayIndexOutOfBoundsException

我希望它能回答你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 2010-10-06
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多