java - 数组 : Location of certain Values Inputed

标签 java

所以我想输出某个值在数组中的位置。如何输出数组值的位置? (代码后的示例):

public class Journal5b {

public int[] [] createArray (int rSize , int cSize)
{
    int [] [] array = new int [rSize][cSize];
    Random r = new Random();
    for (int[] array1 : array) {
        for (int column = 0; column < array[0].length; column++) {
            array1[column] = r.nextInt(26);
        }
    }

    return array;
}

public void print2DArray (int [] [] array)
{
    for (int[] array1 : array) {
        for (int column = 0; column < array[0].length; column++) {
            System.out.print(array1[column] + "\t");
        }
        System.out.println("\n");
    }
}

public int countInstance (int [] [] array, int searchForNum)
{
    int count = 0;

    for (int row = 0; row < array.length; row++) 
    {
        for (int column = 0; column < array[0].length; column++) {
            if (array[row][column] == searchForNum) {

                count++;
            }
        }
    }
     return count; 
}

public static void main(String[] args) 
{
 Scanner in = new Scanner (System.in);
    int [] [] myArray;
    Journal5b j5b = new Journal5b();
    myArray = j5b.createArray(10, 10);
    j5b.print2DArray(myArray);

   int val;
   System.out.println("Enter the number to search for ");
    val = in.nextInt();
    System.out.println("Your Number popped up " + j5b.countInstance(myArray, val) + " times"); 
} 
} 

所以输出看起来像这样:

22  20  12  25  10  8   3   4   12  25  

11  24  0   7   3   21  23  9   23  11  

22  18  10  24  11  13  0   25  8   18  

 7  14  0   5   11  12  9   22  0   16  

14  11  12  4   16  3   20  22  18  25  

 8  24  12  6   25  4   3   16  10  23  

 23 11  8   12  19  15  3   25  12  6   

 10 3   5   22  11  7   0   7   4   4   

 18 1   14  23  7   13  9   9   12  9   

 20 10  6   14  13  1   9   15  0   3   

 Enter the number to search for 
 10
 Your number popped up 5 times and is located on row 0,2,5,7, 9

如果有意义的话,我如何输出我想要输出的内容...我正在尝试添加到 countInstance 并找到每行输入的特定数字的位置。

我已经完成了大部分代码,但是我在这部分代码上遇到了困难。我找不到下一步。我想添加 is located on row 0,2,5,7, 9

最佳答案

是的,我现在明白了, 抱歉,我不得不完全重构您的代码。

public class Journal5b {

   private int[] rowSpotted;//variable to keep rows of searched number
   private int[][] arrayToBeSearched; 

   public class Journal5b (int rows, int columns) {

       rowSpotted = new int[rows];
       arrayToBeSearched = new int[rows][columns];
       this.createArray();
       this.print2dArray();
   }

   private void createArray() {
      Random r = new Random();
      for (int[] array1 : arrayToBeSearched) {
         for (int number: array1) {
               number = r.nextInt(26);
         }
      }
   }

   //I removed the array local variable array so that you won't have to keep passing it as an argument, It's now an instance variable.
   //You can also use a for each loop to populate the inner array, no need to use the for loop.

  public void print2DArray () {
     for (int[] array1 : arrayToBeSearched) {
         for (int num: array1) {
           System.out.print(num + "\t");
         }
      System.out.println("\n");
     }
  }

  //just prints the array to be searched.

  public int countInstance (int searchForNum) {
      int count = 0;

      for (int row = 0; row < arrayToBeSearched.length; row++) {
          for (int column = 0; column < arrayToBeSearched[0].length; column++) {
               if (arrayToBeSearched[row][column] == searchForNum) {
                  rowSpotted[count] = row;  //if the number is found put the row number into the row
                  count++;
               }
          }
      }
      return count; 
  }

 public void printRowSpotted() {
     for(int num : rowSpotted ) {

        System.out.print(num + ',');
     }
 }

 public static void main(String[] args) {
    //scanner stuff......
    Journal5b jb = new Journal5b(10,10);
    //get number to be searched for....
   System.out.print("Your number popped up " + jb.countInstance() + ", on rows " + jb.printRowSpotted());

}

关于java - 数组 : Location of certain Values Inputed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36658708/

相关文章:

java - 尝试使用 JAXB(xjc) 从架构生成类时出现错误

java - 如何在liferay中获取登录凭据?

Java 记录验证注解

java - Datastax java 驱动程序 4.0 以编程方式配置

Java - 日历/日期差异 - 查找精确到秒的差异

java - JPA 多实体与集合查询

java - 如何找到可迭代对象的大小?

java - 轴故障 : Transport error: 415 Error in AXIS2 client(JAVA)

JavaFx 自定义 ListCell 为空

java - 为什么我会收到 HTTP 状态 500 - 未知实体 : org. hibernate.impl.SessionImpl 异常?