【问题标题】:Java Find index of an String Array and use that index to find value of an another array hold that indexJava查找字符串数组的索引并使用该索引来查找另一个数组的值保存该索引
【发布时间】:2020-05-20 13:20:06
【问题描述】:

我有两个这样的数组

String[] StuID=new String[0];
int[] ProgrammingMarks=new int[0];

我使用 Scanner 存储数据的方法

String id=inputID();                       
StuID = insertId(StuID, id);    
System.out.println();
System.out.println("Student has been  added successfully.");

public static String inputID() {
    Scanner input=new Scanner(System.in);
    System.out.print("Enter ID: ");
    String id = input.nextLine();
        return id;
}

public static String[] insertId(String[] StuID, String id) {

   int length = size(StuID);
   String[] newArray = new String[length+1];

   for(int i=0;i<length;i++)
   {
       newArray[i] = StuID[i];
   }

   newArray[length] = id;

   return newArray;
}

我还使用另一种方法为 ProgrammingMarks 数组添加了价值。 当我使用扫描仪输入 StuID 时,我需要打印学生编程标记。我尝试使用另一种方法。

public static int PMarks(int[] ProgrammingMarks) {
            MarksSystem.inputID();
            int index=0;
                for (int i = 0; i < ProgrammingMarks.length; i++) {
                        if (inputID().equals(ProgrammingMarks)) {
                                index=i;
                                break;

                        }

                }
            return index;

    }

但它没有像我预期的那样工作。到目前为止,这是我的完整代码.. Java marks management system using array

【问题讨论】:

    标签: java arrays loops


    【解决方案1】:

    如果您在方法中只使用一次 inputId,那么您可以试试这个:

    public static int PMarks(int[] ProgrammingMarks) {
                String Id = MarksSystem.inputID();
                int index=-1;
                    for (int i = 0; i < ProgrammingMarks.length; i++) {
                            if (Id.equals(ProgrammingMarks[i])) {
                                    index=i;
                                    break;
                            }
                    }
                return index;
        }
    

    此外,如果您在 if 块中没有任何匹配项,请将您的索引初始化为 -1,以处理这种情况。

    另外,如果你必须在 for 循环的每次迭代中获取 inputId,那么

    public static int PMarks(int[] ProgrammingMarks) {
                int index=-1;
                    for (int i = 0; i < ProgrammingMarks.length; i++) {
                            if (inputID().equals(ProgrammingMarks[i])) {
                                    index=i;
                                    break;
                            }
                    }
                return index;
        }
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      更新PMarks()方法中的相等条件

      if (inputID().equals(ProgrammingMarks[i])) {
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-18
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多