【问题标题】:how to find matched value in 2d arrays如何在二维数组中找到匹配的值
【发布时间】:2016-06-30 14:06:59
【问题描述】:

我有一个 char 变量。我想在 2D char 数组中找出与我的 char 变量相等的元素,如果有一个元素,我想获取该元素的索引号

【问题讨论】:

  • 两个for 循环和一些if
  • 如果它是真正的二维数组,您将获得 2 个索引号 - 但您可以改用一维数组并跟踪每行/列的长度(例如,像图像中的像素)。
  • @xenteros 您的解决方案不完整。

标签: java arrays char


【解决方案1】:

您应该循环遍历二维数组。下面的代码显示了名为“myarray”的数组和存储在名为mychar 的变量中的char 的解决方案。 mychar 的坐标将显示在控制台中。

for (int i = 0; i < myarray.length; i++) {
    for (int j = 0; j < myarray[i].length; j++) {
        if (myarray[i][j] == mychar){
            System.out.println(String.valueOf(i) + " " + String.valueOf(j));
            break;
        }
    }
}

【讨论】:

    【解决方案2】:

    您可以创建一个包含两个索引的类。您的方法将返回此类的一个实例。

    char array[][] = new char[10][10];    
    
    class Tuple //helper class
    {
        public int i,  j;
        Tuple(int i, int j)
        {
            this.i = i;
            this.j = j;
        }
    }
    public Tuple matches(char c) //return indices (Tuple-instance) or null if not found
    {
    
        for(int i = 0; i < array.length; i++)
        {
            for(int j = 0; j < array[0].length; j++)
            {
                if(array[i][j] == c)
                {
                    return new Tuple(i, j);
                }
    
            }
        }
        return null;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-06
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多