有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java比较捐献者和接受者的血型

目前我有一个血型分类,检查捐赠者和接受者的血液相容性。它显示了捐献者可以捐献给哪个血型,以及接受者可以从哪个血型获得血液。代码是

血型。JAVA

 package com.safeguy.blooddonor.classes;

/**
 * Created by Lenovo User on 6/17/2017.
 */


public class BloodGroup {

    public BloodGroup(){
    }

    public boolean donor(String a, String b){
        boolean t = false;
        String donor = a.toUpperCase();
        String rec = b.toUpperCase();

        if(donor.equals("O+") && rec.equals("O+")){
            t = true;
        }
        else if(donor.equals("O-")){
            t = true;
        }
        else if(donor.equals("A+") && (rec.equals("A+") || rec.equals("AB+"))){
            t = true;
        }
        else if(donor.equals("A-") && (rec.equals("A+") || rec.equals("AB+") || (rec.equals("A-") || (rec.equals("AB-"))))){
            t = true;
        }
        else if(donor.equals("B+") && (rec.equals("AB+") || rec.equals("B+"))){
            t = true;
        }
        else if(donor.equals("B-") && (rec.equals("AB+") || rec.equals("AB-") || rec.equals("B+") || (rec.equals("B-")))){
            t = true;
        }
        else if(donor.equals("AB+") && (rec.equals("AB+"))){
            t = true;
        }
        else if(donor.equals("AB-") && (rec.equals("AB+") || rec.equals("AB-"))){
            t = true;
        }
        return t;
    }


    public boolean recepient(String a, String b){
        boolean t = false;
        String rec = a.toUpperCase();
        String don = b.toUpperCase();

        if(rec.equals("AB+")){
            t = true;
        }
        else if(rec.equals("AB-") && (don.equals("AB-") || don.equals("A-") || don.equals("B-") || (don.equals("O-")))){
            t = true;
        }
        else if(rec.equals("A+") && (don.equals("A+") || (don.equals("A-") || don.equals("O-") || don.equals("O+")))){
            t = true;
        }
        else if(rec.equals("A-") && (don.equals("A-") || (don.equals("A+")))){
            t = true;
        }
        else if(rec.equals("B+") && (don.equals("B+") || (don.equals("B-") || (don.equals("O-")) || (don.equals("O+"))))){
            t = true;
        }
        else if(rec.equals("B-") && (don.equals("B-") || (don.equals("O-")))){
            t = true;
        }
        else if(rec.equals("O+") && (don.equals("O+")) || (don.equals("O-"))){
            t = true;
        }
        else if(rec.equals("O-") && (don.equals("O-"))){
            t = true;
        }

        return t;
    }
}

我希望应用程序访问宿主血型,并将其与捐献者的血型进行比较。从应用程序获取宿主血型的代码是

ViewActiveRequests。JAVA

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_lists_toolbar);
        sessionManager = new SessionManager();

        list = (ListView) findViewById(R.id.listView);
        personList = new ArrayList<HashMap<String, String>>();

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarViewRequests);
        toolbar.setTitle("View Active Blood Requests");

        //安卓.support.v7.widget.Toolbar
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        initialize();
        callProgressDialog();
        getData();
    }

    private void initialize() {
        Intent getUsername = getIntent();
        CURRENTUSER= getUsername.getStringExtra("USERNAME");
        LOCAL_BLOOD_GROUP = sessionManager.getUserDetails(this,"BLOODGROUP_LOGGED");

        filter = false;
        FilteredBloodgroup = "unfiltered";


        list.setOnItemClickListener(this);
        FilterBySpinner = (Spinner)findViewById(R.id.spFilterBy);
        FilterBySpinner.setOnItemSelectedListener(this);

        List<String> bloodCategories = new ArrayList<String>();
        bloodCategories.add("Filter List Here");
        bloodCategories.add("A+");
        bloodCategories.add("A-");
        bloodCategories.add("B+");
        bloodCategories.add("B-");
        bloodCategories.add("AB+");
        bloodCategories.add("AB-");
        bloodCategories.add("O+");
        bloodCategories.add("O-");
        bloodCategories.add("Unfiltered");

        ArrayAdapter<String> bloodCategoriesAdapter = new ArrayAdapter<String>(this,安卓.R.layout.simple_spinner_item,bloodCategories);

        FilterBySpinner.setAdapter(bloodCategoriesAdapter);
    }

我想要的是,该应用程序应该同时获取捐献者和接受者的血型,并在血型上检查它们的兼容性。java类显示血液是否兼容


共 (1) 个答案

  1. # 1 楼答案

    class Human{
        private BloodGroup bloodGroup;
        private String username;
        public Human(String username, String bloodGroup){
            this.username = username;
            this.bloodGroup = new BloodGroup(bloodGroup);
        }
        public boolean canAcceptBloodFrom(Human donor){
            // implement (i.e. return bloodGroup.canAcceptBloodFrom(donor.bloodGroup); 
            // and in your bloodGroup class you can implement the logic, 
            // or you can implement it straight in your Human class) 
        }
        public boolean canGiveBloodTo(Human recipient){
            return recipient.canAcceptBloodFrom(this)
        }
    }
    

    然后

    Human recipient = new Human(usernameRecipient, bloodGroupRecipient);
    Human donor = new Human(usernameDonor, bloodGroupDonor);
    boolean canRecipientAcceptBloodFromDonor = recipient.canAcceptBloodFrom(donor);
    

    那你就可以随心所欲了