如何在嵌套的arraylist中搜索一串数字?

euoag5mw  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(219)

这个问题在这里已经有答案了

如何比较java中的字符串(23个答案)
四天前关门了。
我需要创建一个方案,其中一个选项应该是一个项目的最后期限。我有一个名为newproject的类,然后在projectoptions文件中有一个对到期日期进行更改的选项。问题就在这里。我需要获取一个项目编号(projnum)输入,然后在数组列表中搜索它,然后允许用户更改到期日期。我该怎么做呢?
该类编程如下:

package poisedProjects;

public class NewProject {

//Atributes

    String projNum;
    String projName;
    String projType;
    String projAddress;
    String erfNum;
    String projCost;
    String projPaid;
    String projDeadLine;

    // Methods
    public NewProject(String projNum, String projName, String projType, String projAddress, String erfNum, String projCost, String projPaid, String projDeadLine) {
      this.projNum = projNum;
      this.projName = projName;
      this.projType = projType;
      this.projAddress = projAddress;
      this.erfNum = erfNum;
      this.projCost = projCost;
      this.projPaid = projPaid;
      this.projDeadLine = projDeadLine;
    }

    //Methods(toString)
    public String toString() {
        String output = "Project Number: " + projNum;
        output += "\nProject Name: " + projName;
        output += "\nProject Type: " + projType;
        output += "\nProject Address: " + projAddress;
        output += "\nERF Number: " + erfNum;
        output += "\nProject Total Cost: " + projCost;
        output += "\nProject Cost Paid: " + projPaid;
        output += "\nProject Deadline: " + projDeadLine;
        return output;
    }

    public boolean contains(String search) {
         return this.projNum.equals(search) || this.projName.equals(search) || this.projType.equals(search) || this.projAddress.equals(search) || this.erfNum.equals(search) || this.projCost.equals(search) || this.projPaid.equals(search) || this.projDeadLine.equals(search);
    }

}

projectoptions文件包含以下内容:

...
import java.util.ArrayList;
import java.util.Scanner;

public class ProjectOptions {
    public static void main(String[] args){

        final Scanner scan = new Scanner(System.in);
        ArrayList<NewProject> newProjects = new ArrayList<NewProject>();
...

        else if(answer == 2) {  

            System.out.println("Enter the Project Number: \n");
            String projNum = scan.toString();

            boolean projfound = false;

            while(projfound == false) {

                boolean currentProj = newProjects.contains(projNum);
                String currentProj2 = String.valueOf(currentProj);

                if(currentProj2 == projNum) {

                    System.out.println("Enter new Due Date: \n");
                    String projDeadLine = scan.toString();

                    System.out.println("The new Due Date is: \t" + projDeadLine );

                    }
                }
            }

事先谢谢你的帮助,我真的很感激。

kqlmhetl

kqlmhetl1#

因此,我认为用于字符串比较的.equals()-方法应该可以工作。
简单示例:

List<String> stringList = new ArrayList<>();
    stringList.add("20");
    stringList.add("33");
    stringList.add("50");

    public static void findStringInStringList(String str) {
    for (int i = 0; i < stringList.size(); i++) {
        if (stringList.get(i).equals(str)) {
            // do something
            System.out.println("Match");
        } else {
            System.out.println("No Match");
         }
       }
     }

相关问题