Строка показывает значение в alertbox, но не кажется истинным, когда .equals выполняется с тем же значением в java - PullRequest
0 голосов
/ 04 апреля 2020

Мое приложение получает строку с сервера и сравнивается непосредственно со значением, которое было отправлено сервером. Но это не входит в блок if. Часть моего кода с этой проблемой:

    public void reciever(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Socket s = new Socket("192.168.0.105",6000);
                    InputStream in=s.getInputStream();
                    final byte[] recv=new byte[10];
                    in.read(recv);
                    final String back=new String(recv,StandardCharsets.UTF_8);
                    s.close();
                    descr=back+"spacecheck";
                    if(back.equals("Psoriasis")){
                        descr="plaque: thick red patches of skin guttate: small red spots on the torso, limbs, face, and scalp inverse: a red, shiny, smooth rash in skin folds pustular: white pustules surrouned by red skin";
                    }
                    if (back.equals("Cold Sore")){
                        descr="red, fluid-filled blisters that appear near the mouth your lips will often tingle or burn before the sore is visible the sore is painful or tender to the touch,12 days";
                    }
                    if(back.equals("Rubeola (Measles)")){
                        descr="fever, cough, and runny nose reddish-brown rash spreads down the body three to five days after first symptoms appear tiny red spots with blue-white centers inside the mouth,1 week";
                    }
                    mine.post(new Runnable() {

                        @Override
                        public void run() {
                            prg.setProgress(100);
                            tx.setText(back);
                            AlertDialog.Builder shower = new AlertDialog.Builder(MainActivity.this);
                            shower.setTitle(back);
                            shower.setMessage(descr);
                            shower.setNegativeButton("Close", new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                }
                            });
                            AlertDialog alert = shower.create();
                            alert.show();
                        }
                    });
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

Я скопировал и вставил значение, отправленное с моего сервера, а также в диалоговом окне отображается точное значение, как я положил на сервере, а также в коде if. Три утверждения if показывают ту же проблему. Я также позаботился о том, чтобы в переменной «back» не было лишнего пробела. Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...