【问题标题】:How to find the location of a specific String in my array? [duplicate]如何在我的数组中找到特定字符串的位置? [复制]
【发布时间】:2020-10-26 00:20:55
【问题描述】:

我正在做一个项目,用户输入一个行星名称,程序使用一个数组来验证它是一个真实的行星,并使用一个单独的数组来保存每个行星的直径。设置了直径数组,因此它的条目与行星名称数组中的条目的顺序相同。我将它们都放在下面以供参考:

String[] verifyPlanet = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"};
double[] getDiameter = {3031.9, 7520.8, 7917.5, 4214.3, 86881, 72367, 31518, 30599};

我正在寻找一种方法来查找行星在第一个数组中的条目号,并使用它来查找第二个数组中的直径。例如,用户输入“Mercury”,它会被确认为行星名称,然后我会有一个输出0的命令,所以我可以简单地输入getDiameter[Arrays.COMMANDEXAMPLE(verifyPlanet)]来输出相应的直径。只是为了避免歧义,我正在寻找可以替换 COMMANDEXAMPLE 的代码,以便命令输出 0。提前致谢!

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    首先检查让我们说“地球”是否在数组中:

    String planetName = "Earth";
    for(String str: verifyPlanet){
         if(str.equals(planetName)){
             for(int i=0;i < verifyPlanet.length;i++){
                 if(verifyPlanet[i] == "Earth"){
                     double diameter = (double)Array.get(getDiameter, i);
    }}}}
    

    这是最基本的方法。存在其他方法来减少此代码。也可以使用 indexOf() 方法来获取值。但是如果你的应用程序不是太大,那么它是简单易懂的。

    【讨论】:

      【解决方案2】:

      您可以使用Arrays.asList 从数组中创建List 并使用indexOf 方法。

      final List<String> planetList = Arrays.asList(verifyPlanet);
      int index = planetList.indexOf("Mercury");//0
      

      更有效但不太方便的方法是为字符串数组实现自己的indexOf 方法。

      public static void main(final String[] args) {
          final String[] verifyPlanet = { "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune" };
          System.out.println(indexOf(verifyPlanet, "Mercury"));//0
      }
      
      private static int indexOf(final String[] arr, final String search) {
          for (int i = 0, len = arr.length; i < len; i++) {
              if (arr[i].equals(search)) {
                  return i;
              }
          }
          return -1;
      }
      

      【讨论】:

        猜你喜欢
        • 2018-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-03
        • 2022-01-24
        • 1970-01-01
        • 2021-05-24
        相关资源
        最近更新 更多